解决Navicat无法连接到centos上的MySQL,但命令行可以,修改权限,MySQL密码权限受限:ERROR 1820 (HY000) ERROR 1819 (HY000)...

问题分析

查看MySQL文档发现5.7版本后加入了对用户密码严格的管理规范,具体设置字段如下:

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 
#密码至少要包含的特殊字符数。

所以我们只需要禁用这些配置即可:

解决方法

首先用命令行连接上sql,然后use mysql;

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      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

2、禁用修改安全权限

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql>  set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)

mysql>  set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)

3.再尝试修改root密码的权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'XXX.XX.XX.XX' IDENTIFIED BY '你的密码' WITH grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>  flush privileges;
Query OK, 0 rows affected (0.00 sec)

解决Navicat无法连接到centos上的MySQL,但命令行可以,修改权限,MySQL密码权限受限:ERROR 1820 (HY000) ERROR 1819 (HY000)..._第1张图片

4.再尝试用Navicat Premium登录,连接成功

转载于:https://www.cnblogs.com/eveblog/p/10138612.html

你可能感兴趣的:(解决Navicat无法连接到centos上的MySQL,但命令行可以,修改权限,MySQL密码权限受限:ERROR 1820 (HY000) ERROR 1819 (HY000)...)