问题描述

执行sql语句grant replication slave on *.* to 'xiaoming'@'%' identified by '1234';时报错:

解决方案

密码不符合当前的策略要求,可能要求密码长度、大小写字母、数字或特殊字符等。
方案一:可以根据具体的要求重新设置密码,确保密码符合要求并且足够安全。
方案二:可以修改策略,允许设置简单密码

  1. 查看当前的密码策略
mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| 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      |
+--------------------------------------+--------+
 // 密码长度要求8位,验证策略是MEDIUM,就是长度,数字,大小写,特殊字符都得验证
  1. 修改密码策略
mysql> set global validate_password_policy=0; 	// 只检查长度
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=4;	// 密码长度为4
Query OK, 0 rows affected (0.00 sec)
  1. 再次查看密码策略

mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
  1. 执行grant replication slave on *.* to 'xiaoming'@'%' identified by '1234';即可使用简单密码1234

拓展

1、修改密码的四种方式
1)shell命令行下mysqladmin -uroot -poldpassword password newpassword
2)sql命令行下 set password = password(newpassword);
3)sql命令行下 update user set authentication_string=password(newpassword) where user=‘root’;
4)sql命令行下 alter user root@‘localhost’ identified by ‘newpassword’;//使用随机密码登录,如果要使用数据,查看数据库等操作时mysql会推荐这种写法改变密码。

2、密码策略的三个值分别代表的含义
1)LOW(0)只检查长度。
2)MEDIUM(1)检查长度,数字,大小写,特殊字符。
3)STRONG(2)检查长度,数字,大小写,特殊字符字典文件。

06-08 15:11