…………………………………………………………..
博客地址: https://keith666666.github.io/
………………………………………………………….
Reason for this: 最近在CentOS
上安装MySQL
的时候遇到了一点问题,花了点时间解决了,感觉不管是官网还是网上的一些教程都不够完整,不能一次性帮新手解决问题,于是我就结合官网和网上的资源整理了下.
相关配置如下:
操作系统: CentOS 7.2
MySQL版本: 5.7.x
1. 下载安装
1.1 下载rpm包
选择相应的版本:系统版本和包版本. 系统版本可以通过uname -a
来查看:
wget http://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm
1.2 下载安装软件源
sudo yum localinstall platform-and-version-specific-package-name.rpm
platform-and-version-specific-package-name.rpm
这个就是跟上面那个匹配的,对于上例来说也就是mysql57-community-release-el7-9.noarch.rpm
.
说明: 这个操作是会将MySQL Yum repository添加到系统的repository list,还会下载GnuPG key来检查软件包的完整性.
可以查看系统是否添加了该源:
shell> yum repolist all | grep mysql
通过上述命令的输出结果来判断.
1.3 安装MySQL
sudo yum install mysql-community-server
1.4 启动MySQL Server
sudo systemctl start mysqld
可以查看server运行状况
systemctl status mysqld
- 要让mysql开机启动可以通过该命令设置:
systemctl enable mysqld.service
- 注意是
mysqld
,有个d
.
1.5 初始化设置
mysql_secure_installation
该命令会要你设置一些密码等信息.
到这里所有步骤都走完了,如果有问题可以参考下面.
2. 问题
Q1. 初始化要求登录密码:
原因: MySQL 5.7及以上在安装的时候会生成一个随机的临时密码,存在这里: /var/log/mysqld.log
,可以通过下面方法来获取该密码:
sudo grep 'temporary password' /var/log/mysqld.log
Q2. 设置密码出现 Password Policy问题
也就是为什么不能设置6位密码的问题.
原因: MySQL里带了一个密码验证的插件来防止密码设置过于简单.
可以先设置一个复杂的密码,然后再修改密码要求后再改成简单的,这个复杂密码的要求是:
1. 特殊字符
2. 大小写字母
3. 数字
4. 长度8位
这里给个示范密码:!Aa112233
.
在用新的密码登录之后,先查看密码相关的变量:
SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
上面的这些变量就是关于密码的限制,这个可以改:
mysql> SET GLOBAL validate_password_policy = LOW;
mysql> SET GLOBAL validate_password_length = 6;
mysql> SET GLOBAL validate_password_number_count = 0;
mysql> SET GLOBAL validate_password_mixed_case_count = 0;
mysql> SET GLOBAL validate_password_special_char_count = 0;
然后可以设置6位的密码了.