给CentOS配置MySQL踩过好多坑,记录一下。如果想直接看正确的全流程,直接看绿底字部分。
1. 安装mysql
踩坑:No package mysql-community-server available. Error: Nothing to do
如果直接使用命令安装MySQL:
yum install mysql-community-server
可能会出现报错:
用wget命令安装rpm包:(逐行执行下列命令)
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
踩坑:Failing package is: mysql-community-common-8.0.33-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
如果直接使用yum install mysql-community-server命令,可能出现上述报错。报错具体内容是说系统中的GPG Keys已经配置为使用文件/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql进行MySQL软件包的数字签名验证。
选择绕开数字签名验证安装MySQL:
yum -y install mysql mysql-server --nogpgcheck
成功安装
检验是否安装成功:
rpm -qa | grep mysql
如果安装成功,会得到类似下图的输出
2. 配置密码
启动MySQL:
systemctl start mysqld
生成临时密码:
grep 'temporary password' /var/log/mysqld.log
可以看到生成的临时密码:root@localhost: <temp_pwd>
登录MySQL:
注意-p与密码之间直接连接,不用空格。
mysql -uroot -p<pwd>
现在准备修改密码。
踩坑:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
初始情况下MySQL对密码有限定,如果设置的密码不符合mysql的要求则报错。因此不建议直接输入ALTER USER <username>@<host> IDENTIFIED BY <pwd>命令。先修改MySQL系统对密码的限制。
踩坑:ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
查看MySQL的密码策略:
SHOW VARIABLES LIKE 'validate_password%';
其中,validate_password.policy对应密码的强弱程度;validate_password_length对应密码长度。MySQL系统默认policy为1(MEDIUM),length默认为8。
参数说明详见官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.4.3.2 Password Validation Options and Variables
修改mysql系统对密码的限制:(逐行执行如下命令)
set global validate_password.policy=LOW;
set global validate_password.length=<length>;
需要注意的是MySQL 8.0版本下validate_password.policy对应旧版的validate_password_policy;validate_password.length对应validate_password_length,如果在8.0中使用旧版的变量名称(validate_password_policy/validate_password_length),则报错。
修改好MySQL系统设置后,输入如下命令修改MySQL登录密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY <pwd>;
退出后重新登录,成功登录即完成配置。
That's all.