问题描述
执行sql语句grant replication slave on *.* to 'xiaoming'@'%' identified by '1234';
时报错:
解决方案
密码不符合当前的策略要求,可能要求密码长度、大小写字母、数字或特殊字符等。
方案一:可以根据具体的要求重新设置密码,确保密码符合要求并且足够安全。
方案二:可以修改策略,允许设置简单密码
- 查看当前的密码策略
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,就是长度,数字,大小写,特殊字符都得验证
- 修改密码策略
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)
- 再次查看密码策略
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 |
+--------------------------------------+-------+
- 执行
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)检查长度,数字,大小写,特殊字符字典文件。