这篇文章主要介绍在CentOS7上安装MySQL8并设置字符集utf8mb4以支持「emoji表情」等特殊字符,下面的方法已经过小编的验证,请放心使用。不过,请认准版本,其他版本不保证可行,经测试,假如你的CentOS是8版本,或者Mysql是5x版本都或多或少会有问题,因为有一些设置细节是不一样的,比如MySQL5.7 和 MySQL8.0 密码验证插件其实变量名是不一样的(*_password_policy 和 *_password.policy )这个问题将导致在更新Mysql支持弱密码时会报类似于下面的错误:「ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'」,所以大家一定要认准版本!下面开始介绍
1、安装MySQL 8:
首先,你需要添加MySQL官方的YUM仓库以及安装MySQL服务器,在终端中执行以下命令:
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo yum install mysql-community-server
这里一定要注意:如果安装的过程提示了:mysql-community-client-8.0.36-1.el7.x86_64.rpm 的公钥尚未安装,,则在命令行末尾加上--nogpgcheck即可
yum -y install mysql-community-server --nogpgcheck
2、配置MySQL
打开配置文件
vim /etc/my.cnf
在 [mysqld]节点下输入
character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
按Shift+:wq!保存并退出命令行
3、启动MySQL服务并设置开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
4、查找初始密码(在第一次登录时就是用这个密码):
sudo grep 'temporary password' /var/log/mysqld.log
5、使用初始密码登录MySQL,执行登录命令后,粘贴刚才复制的密码
mysql -u root -p
6、设置数据库支持弱密码
set global validate_password.policy=0; set global validate_password.length=1;
7、修改数据库密码,其中‘tongzhewang’即为新密码
alter user 'root'@'localhost' identified by 'tongzhewang';
8、设置允许远程登录
create user 'root'@'%' identified by 'tongzhewang'; grant all privileges on *.* to 'root'@'%';
9、最后刷新权限,大功告成
flush privileges;
总结:
经过以上设置就可以在Mysql客户端(Navicat)通过ip以及密码的方式进行远程连接数据库了,并且当前数据库支持创建字符集为utf8mb4的数据库及表。