一、修改密码语句解析
进入mysql之后,想要修改密码,先输入如下语句:
use mysql
select user,host from user;
结果如下:
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
修改root的密码的语句应该是:
ALTER USER 'root'@'%' IDENTIFIED BY '新密码';
修改密码语句解析:
ALTER USER '用户名'@'该用户所在的域' IDENTIFIED BY '新密码';
二、降低MySQL密码强度
自己玩mysql的时候,希望用很简单的密码,但是由于mysql有密码强度要求,
不能设置诸如“123456”的这样的密码。
比如你输入如下命令行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
会报如下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看mysql密码强度
SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| 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 |
+--------------------------------------+--------+
将validate_password.policy改成0
set global validate_password.policy=0;
将密码长度改为:
set global validate_password.length=6;
然后再执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
显示:
Query OK, 0 rows affected (0.03 sec)
如果你是刚安装完mysql,修改初始密码的时候,必须要先设置强度较强的密码(大小写字母+数字+特殊符号比如%),
然后在执行以上步骤。否则修改不了密码强度
另外,重启mysql之后,密码强度会被重置,即使你如下执行:
set global validate_password.policy=0;
set global validate_password.length=6;
FLUSH PRIVILEGES;
重启之后依然会被重置,这个待解决。