原因
近期618大促销,买了个云服务器准备进行一些小功能的测试,在安装mysql8.0+的时候遇到一些小问题,折腾了几个小时,记录一下踩的坑。
1. 下载安装mysql8.1
wget http://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
yum -y install mysql80-community-release-el8-1.noarch.rpm
yum -y install mysql-community-server
说明:
执行这条语句yum -y install mysql-community-server
可能会报下面的错误:
No match for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
解决方案:
先执行:yum module disable mysql
再执行:yum -y install mysql-community-server
2. 配置MySQL开机自启
systemctl start mysqld
systemctl enable mysqld
3. 查看MySQL初始密码
grep "password" /var/log/mysqld.log
4. 登录数据库
mysql -uroot -p
5. 密码处理
说明:MySQL8.0相对于MySQL5.x,对安全性控制更高,相应的对密码相关的规则和策略也有所加强和不同
5.1 修改密码
alter user 'root'@'localhost' identified by '12345678';
说明:这边先设置一个复杂些的密码如Abcde@12345,然后把密码策略改低后再设置为简单的密码,否则密码是不允许直接修改为12345678的
5.2 查看密码策略
show variables like 'validate_password%';
如下图:
5.3 修改密码安全策略为低
set global validate_password.policy=LOW;
6. 设置用户远程管理权限
说明:没打算开放root用户权限,这边新建一个用户开放权限。
6.1 新建用户
create user 'test'@'%' identified by '12345678';
6.2 授予权限
grant all privileges on *.* to 'test'@'%';
6.3 刷新权限
flush privileges;
6.4 补充说明
mysql数据库禁止通过localhost的密码登录,需要用%的密码登录
7. 配置阿里云的安全策略
操作如下图: