在luxin服务其上安装了mysql,通过ssh连接到服务器 登陆上Mysql 一切都正常
尝试用Navicat连接 服务器的mysql 报错10061
从此以后走上解决问题的道路:
由于在ssh连上之后可以正常使用mysql ,考虑是权限的问题
于是:查到资料增加权限
#标准语法
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
#我使用的
给root增加远程连接的功能 密码是 @L1Y1ru000
grant all privileges on *.* to root@"%" identified by "@L1Y1ru000";
增加权限的时候,又报错: 1819 是说密码不符合 密码安全等级的意思
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
ERROR 1819 (HY000): Your password does not satisfy the current policy requiremen
【原因】
原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。
使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password。
查看我的密码等级;
参考文章: mysql 密码强度规则设置 设置简单密码报错ERROR 1819 (HY000)
mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM |
+----------------------------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
6 rows in set (0.08 sec)
如果密码不符合检验规则,有两种做法:
第一修改密码,使密码符合规则:
如何修改mysql密码参考下面的文章
https://blog.csdn.net/shangyuanlang/article/details/80814410
但是 这篇文章提供的方法我的不能用,可能是mysql版本的不同
我修改密码用的是:
alter user'root'@'%' IDENTIFIED BY '@L1Y1ru000';
第二修改密码检验的规则
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.05 sec)
mysql>
mysql>
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_number_count=3;
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_length=3;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 3 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 3 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 0 |
+--------------------------------------+-------+
6 rows in set (0.00 sec)
密码符合规则以后:回到增加权限的步骤
再次尝试远程登陆,还是不行:
解决方法:
1. 打开/etc/mysql/mysql.conf.d/mysqld.cnf文件
2. 在bind-address=127.0.0.1前加#注释,或者直接删掉这行
3. 保存关闭mysqld.cnf文件,输入service mysql restart重启mysql数据库