CentOS 7 安装 MySQL

MySQL 下载 & 安装

在 CentOS 7 中默认安装有 MariaDB,这个是 MySQL 的分支,但为了需要,还是要在系统中安装 MySQL,而且安装完成之后可以直接覆盖掉 MariaDB。

①、安装 wget

yum -y install wget

②、由于 CentOS 7 的 yum 本地源中没有 mysql,需要下载 MySQL 官方的 Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
// -i:下载本地或外部 FILE 中的 URLs
// -c:断点续传下载文件

无网的环境下 ①、② 步也可以这样:先在有网的环境下下载 MySQL 官方的 Yum Repository(下载地址:http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm),然后使用 Xftp 工具上传至服务器。

③、安装 Yum Repository

yum -y install mysql57-community-release-el7-11.noarch.rpm
// -y:回答全部问题为是

④、更新 yum 缓存安装 MySQL

yum clean all
yum makecache
yum -y install mysql-community-server
MySQL 配置设置

⑤、首先启动MySQL

systemctl start mysqld.service

⑥、查看 MySQL 运行状态、并从日志文件中找出初始密码

systemctl status mysqld.service
grep "password" /var/log/mysqld.log
// grep:会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。

⑦、利用初始密码登录数据库

mysql -u root -p 
// 回车,然后输入上一步查到的初始密码

⑧、此时不能做任何事情,因为 MySQL 默认必须修改密码之后才能操作数据库:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
// 现在的 mysql 对密码强度要求较高,需要包含大小写字母、数字和特殊字符

⑨、最后,就是因为安装了 Yum Repository,以后每次 yum 操作都会自动更新,需要把这个卸载掉:

yum -y remove mysql57-community-release-el7-11.noarch.rpm

完成上述步骤,即安装 MySQL 完毕!!!

查看 & 修改 MySQL 密码规则

如果出现以下错误,则表示密码格式太过简单

MySQL 有密码设置的规范,具体是与 validate_password_policy 的值有关:

MySQL 完整的初始密码规则可以通过如下命令查看:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

密码的长度是由 validate_password_length 决定的,而 validate_password_length 的计算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

可以通过如下命令修改密码规范:

mysql> set global validate_password_policy=0; -- 设置密码规范强度为 低 
mysql> set global validate_password_length=1; -- 设置密码最低长度为 1

设置以上两个值之后,此时密码就可以设置的很简单,例如 1234 之类的。到此数据库的密码规范设置就完成了。