远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)

我安装的MySQL数据库版本是5.7.24 远程连接数据库的时候报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.154.143’ (10061)

给用户附远程登录时候报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)

  1. 第一步先测试下看看能不能ping通要远程连接的主机
ping 192.168.154.143     //ping ip地址

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)
得到上图说明可以远程连接上主机。

  1. 去主机上查看3306端口是否被别的应用给占用
sudo netstat -nlp|grep 3306

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)
出现上图形式说明MySQL服务是在3306端口启动的。

  1. 然后查看my.conf文件是否绑定地址为本地
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 

在文件中查找是否存在这行: “bind-address = 127.0.0.1” 将它注释掉

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)

  1. 在本地登录用root用户登录MySQL查看是否有权限远程登录
select user,host from mysql.user;

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)
如图可以看到root用户只有localhost(本机)可以登录,如果host那一栏是“%”的话说明已经是可以远程登录,可以尝试去登录下。

  1. 把root用户放权给所以机器都可以远程登录
grant all privileges on *.* to 'root'@'%' identified by 'uroot';

说明:“all privileges” 是赋予所有的权限,也可以赋予别的权限
“*.*” 是给所有的数据库和表都开放权限
“root” 是用户登录的名字
“%” 代表所有的机器可以登录,也可以给具体的ip
“uroot” 远程登录的密码
具体的权限问题请看MySQL数据库的权限

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)
在执行上面命令的时候报错了说我给的密码不符合现在的策略。

  1. 接着我查看数据库密码的符合规则
show variables like 'validate_password%';

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)

validate_password_check_user_name //核对用户名和密码
validate_password_dictionary_file //验证密码强度的字典文件路径
validate_password_length//密码的最小长度
validate_password_mixed_case_count //密码最少包含多少个英文字母
validate_password_number_count //密码最少包含多少个数字
validate_password_policy //密码的安全度
validate_password_special_char_count //密码最少包含多少个特殊字符

  1. 然后我们把设置密码校验难度减低
mysql> set global validate_password_length=3;//其实这里最少是4,设置比4小会变成4.
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count=0;
mysql> set global validate_password_policy=0;
mysql> set global validate_password_special_char_count=0;

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)

  1. 重新给root用户开放远程登录的权限
grant all privileges on *.* to 'root'@'%' identified by 'uroot';

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)
从上图可以看出设置成功了,退出mysql。

  1. 最后一步了,重启MySQL的服务就可以了
sudo service mysql restart

远程连接数据库:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.154.143' (10061)
可以远程登录了。

本篇博客到这里也就结束了希望可以帮到你,如果有哪里写的不对还望各位大佬指出!!!谢谢大家了。