下载 mysql 8
更新系统:
sudo yum update
添加 MySQL Yum存储库:
sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
安装 MySQL 8:
sudo yum install mysql-server
重置密码
查看初始密码:
sudo cat /var/log/mysqld.log | grep 'temporary password'
使用找到的临时密码登录 MySQL:
mysql -u root -p
设置符合密码策略的密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd123!';
注意,如果密码不符合策略,会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
设置密码后退出并重新登录:
mysql -u root -p
降低密码策略:
set global validate_password.policy=0;
set global validate_password.length=1;
设置自己想要的密码,如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test123456';
刷新权限:
flush privileges;
设置允许远程登录
使用新密码登录 MySQL:
mysql -u root -p
选择 mysql 数据库:
use mysql;
查看当前 root 用户的相关信息:
select host, user, authentication_string, plugin from user;
执行完上面的命令后会显示一个表格。查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。
授权 root 用户的所有权限并设置远程访问:
GRANT ALL ON *.* TO 'root'@'%';
GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。
若报错:
执行下面步骤:
update user set host='%' where user='root';
再执行两次:
GRANT ALL ON *.* TO 'root'@'%';
刷新权限:
flush privileges;