centos7 yum安装MySQL5.7.34
安装环境:CentOS7 64位 MINI版,安装MySQL5.7
在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/
下面已经提供一个YUM源安装包,如果不需要特定版本可直接使用我提供的5.7.24版本
1、下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2、安装mysql源
yum -y localinstall mysql57-community-release-el7-8.noarch.rpm
3、以上步骤完成后,检查MySQL源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
#有以下显示则MySQL源安装成功
[root@master ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 203
mysql-tools-community/x86_64 MySQL Tools Community 129
mysql57-community/x86_64 MySQL 5.7 Community Server 504
4、安装MySQL服务
yum -y install mysql-community-server
5、启动MySQL服务
systemctl start mysqld
6、修改root本地登录密码
#mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。要登陆需要通过下面的方式找到root默认密码,然后登录mysql,再进行修改
grep 'temporary password' /var/log/mysqld.log
密码结果:
[root@master ~]# grep 'temporary password' /var/log/mysqld.log
2021-06-19T15:42:48.555785Z 1 [Note] A temporary password is generated for root@localhost: +P,(a3Pf;Ne-
#根据上面找到得默认密码登陆MySQL
[root@master ~]# mysql -uroot -p'+P,(a3Pf;Ne-'
7、查看密码策略的相关信息
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 0 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 0 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 0 |
+--------------------------------------+-------+
7 rows in set (0.06 sec)
#这是我以及修改过的。具体得请对照自己新安装得MySQL
**密码策略参数解释**
validate_password_dictionary_file #插件用于验证密码强度的字典文件路径。
validate_password_length #密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
validate_password_mixed_case_count #密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count #密码至少要包含的数字个数。
validate_password_policy #密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
validate_password_special_char_count #密码至少要包含的特殊字符数。
8、修改MySQL密码MySQL5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示错误
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('QWEasd123///'); #最少8位 必须含有数字,小写或大写字母,特殊字符。
如果不需要密码策略,添加my.cnf文件中添加如下配置禁用,然后重启MySQL即可生效
[root@master ~]# vim /etc/my.cnf
validate_password = off
9、修改密码策略参数配置
#修改完这些才能将root默认密码设置为空或者简单密码
set global validate_password_policy=0; #密码强度检查等级 0/LOW、1/MEDIUM、2/STRONG 默认是1,即MEDIUM
set global validate_password_mixed_case_count=0; #密码至少要包含的小写字母个数和大写字母个数。
set global validate_password_number_count=0; #密码至少要包含的数字个数。
set global validate_password_special_char_count=0; #密码至少要包含的特殊字符数。
set global validate_password_length=0; #密码长度
**修改root密码为空**
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
10、一些默认文件路径
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
11、如果忘记root密码,则按如下操作恢复在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出。
vim /etc/my.cnf
[mysqld]
....
skip-grant-tables
.....
#加在[mysql]段当中,加完保存退出,重启MySQL服务
#重新修改root密码
mysql -u root
mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
mysql> flushp rivileges