当远程连接MySQL数据库的时候显示Can't connect to MySQL server (10060),我们从以下几个方面入手,找出错误的原因:
1.网络不通。
检查能不能ping通。
2.防火墙设置。这个可能性也很大,优先排查这个
防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口。
方法:
防火墙开放3306端口
1、打开防火墙配置文件
1
|
vi /etc/sysconfig/iptables |
2、增加下面一行
1
|
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT |
3、重启防火墙
1
|
service iptables restart |
3.mysql的账户设置。
mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:
- mysql -u root -p //登录MySQL
- mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机都可以访问数据库
- mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效
- mysql> EXIT //退出
也可以通过修改表来实现远程:
- mysql -u root -p
- mysql> use mysql;
- mysql> update user set host = '%' where user = 'root';
- mysql> select host, user from user;
其实错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉
linux下mysql开启远程访问权限及防火墙开放3306端口
报错:1130-host ... is not allowed to connect to this MySql server
来源:https://www.cnblogs.com/kenshinobiy/p/7645871.html