2013-03-27 204 views
0

我一直有一些麻烦试图远程访问我的MySQL数据库。 它正常工作,对其进行访问本地或通过LAN,而是试图通过互联网,当我得到这个错误:不能远程访问MySQL服务器

主机“192.168.1.1”是不允许连接到这个MySQL服务器

我已经做了所有这些:

  • 禁用防火墙
  • 授予权限与本地客户端:GRANT ALL ON *.* TO [email protected]'%' IDENTIFIED BY 'root';

然后,当我尝试连接:

mysql -h190.XXX.XXX.XXX -uroot -proot 

请注意,我试图通过公共IP(190.XXX.XXX.XXX)连接,但错误显示路由器本地IP(路由器被配置为将端口3306转发到服务器主机)。

任何想法是什么会导致它?

在此先感谢。

+1

检查'收口address'被设置为'0.0.0.0'接受来自遥控器的连接。 – 2013-03-27 02:45:51

回答

2

很多可能的原因:

_先在my.cnf:

#skip-networking # should be disabled 
bind-address = 0.0.0.0 #make sure it is not bound to localhost 

_然后确保没有防火墙,你不需要打开/ etc/hosts中的端口。允许(或任何你正在使用诸如亚马逊策略编辑器)

_也是你的资助应该有授权选项(我会用其他的东西比根用于远程访问):

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'pass' WITH 
GRANT OPTION; 

_然后确保你刷新权限(授权后):my.cnf`的`

flush privileges; 
+0

问题出在绑定地址变量中。 非常感谢Youn! – 2013-03-28 16:12:58

+0

谢谢你! (需要GRANT) – trogne 2015-10-08 22:40:06