官网下载MySQL8.0
创建存储目录,并解压文件
代码语言:javascript复制mkdir -p /data
cd /data
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
tar xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql-8.0.23
cd mysql-8.0.23/
pwd
# 方便后面拷贝路径
安装必要依赖
这一步可以省略,如果后面安装报错再回来安装也可以
代码语言:javascript复制yum -y libaio install ncurses-compat-libs
开始安装
代码语言:javascript复制cd /usr/local
ln -s /data/mysql-8.0.23 mysql
cd mysql
mkdir mysql-files
# 给MySQL用户授权
chown mysql:mysql mysql-files
chmod 750 mysql-files
# 初始化,注意这里会输出root用户的默认密码,切记拷贝下来
# A temporary password is generated for root@localhost: XXX
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup
# 启动应用
bin/mysqld_safe --user=mysql &
# 添加到开机启动
cp support-files/mysql.server /etc/init.d/mysql.server
添加环境变量
代码语言:javascript复制vim /etc/profile
# 在文件末尾添加以下命令
export PATH=/usr/local/mysql/bin:$PATH
# :wq 保存并退出
source /etc/profile
重置mysql初始密码
必须进行密码的重置操作,不然不能使用
代码语言:javascript复制mysql -u root -p
# 输入刚才记住的密码登录
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql> flush privileges;
mysql> exit
# 退出使用新密码登录,如果忘记密码,删除mysql目录下的data目录重新初始化
开启远程登录
代码语言:javascript复制mysql> use mysql;
# 从user表中列出所有user,host 此时显示的root 用户的host为 localhost
mysql> select user,host from user;
# 修改root用户的ip地址为%
mysql> update user set host='%' where user = 'root'
# 从user表中列出所有user,host 此时显示的root 用户的host为 %
# 刷新权限信息使更新生效
mysql> flush privileges;
# 退出mysql
mysql> exit;
测试连接
这里推荐使用IDEA自带的database
组件,后续再出篇文章详细介绍。
如果不能连接请检查服务器防火墙设置,如果防火墙关闭状态检查云服务器的安全组设置。
MYSQL编码
代码语言:javascript复制mysql> show variables like 'character%';
-------------------------- ------------------------------------
| Variable_name | Value |
-------------------------- ------------------------------------
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /data/mysql-8.0.23/share/charsets/ |
-------------------------- ------------------------------------
8 rows in set (0.02 sec)
从上图中可以看到 MySQL 有六处使用了字符集,分别为:client 、connection、database、results、server 、system。其中与服务器端相关:database、server、system(永远无法修改,就是utf-8);与客户端相关:connection、client、results 。
- client 为客户端使用的字符集。
- connection 为连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置。
- database 为数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
- results 为数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
- server 为服务器安装时指定的默认字符集设定。
- system 为数据库系统使用的字符集设定。
不论学习什么,建议从官方网站寻找答案。