安装Yum Repository
[root@localhost ~]# wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
使用rpm来安装MySQL
[root@localhost ~]# rpm -ivh mysql80-community-release-el8-1.noarch.rpm
使用yum安装mysql服务
[root@localhost ~]# yum install mysql-server
检查是否已经设置为开机启动MySQL服务
[root@localhost ~]# systemctl list-unit-files|grep mysqld
mysqld.service disabled
mysqld@.service disabled
[root@localhost ~]# systemctl enable mysqld.service #设置开机启动
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@localhost ~]# systemctl list-unit-files|grep mysqld
mysqld.service enabled
mysqld@.service disabled
[root@localhost ~]# ps -ef|grep mysql # 查看是否启动MySQL服务
root 4311 32702 0 21:07 pts/4 00:00:00 grep --color=auto mysql
[root@localhost ~]# systemctl start mysqld.service #启动服务
这时候还只是成功的一半
接下来,我们来登录、修改密码
一. 登录: 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。
cat /var/log/mysqld.log |grep password
// generated for root@localhost: 后面的就是密码
二. 更改初始密码
如果我们不更改密码
// 大概会是 提醒你,不管你输入什么,都有一个错误提示:修改密码
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改为一个简单的密码,会报以下错误:
mysql> ALTER USER USER() IDENTIFIED BY '12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
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,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
所以你就可以按一下方式修改密码了!!
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huidianit!123';
如果你是一个记忆力超强的人,可以止步于此了
——————————————————————————
接下来,我们希望直接换一个简单的密码 '12345' 甚至 是不设置密码
大概意思就是更改密码的验证规则
1、解决办法调整MySQL密码验证规则,修改 policy 和 length 的值。
2、MySQL 5.7 进行如下设置,即可解决问题:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
3、MySQL 8.0 执行代码:
mysql> set global validate_password_policy=0;
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
mysql> set global validate_password_length=1;
ERROR 1193 (HY000): Unknown system variable 'validate_password_length'
可以看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中无效。'validate_password_policy' 变量不存在。
1、通过查阅资料,可知两个版本中,变量名不一样。(*_password_policy 和 *_password.policy ) --- 问题原因所在。
2、MySQL 8.0 调整密码验证规则:
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
这时候变量名 有了,你也可以去修改了,可是 依然提醒你 先改密码
// 这时候 就 先改为一个 复杂的 密码,先进去 mysql,之后的事情你想干嘛就干嘛
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';