2021-06-22

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
上一篇:ML之xgboost:利用xgboost算法(sklearn+3Split)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)


下一篇:golang之数据验证validator