我一直在尝试远程访问MySQL数据库时遇到麻烦。 它可以很好地访问本地或局域网,但在互联网上尝试时我收到此错误:
主机'192.168.1.1'不允许连接到此MySQL服务器
我做了所有这些:
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'root'
; 然后当我尝试连接时:
mysql -h190.XXX.XXX.XXX -uroot -proot
请注意,我尝试通过公共IP(190.XXX.XXX.XXX)进行连接,但错误显示路由器本地IP(路由器配置为将端口3306转发到服务器主机)。
答案 0 :(得分:2)
有很多可能的原因:
_首先在my.cnf:
#skip-networking # should be disabled
bind-address = 0.0.0.0 #make sure it is not bound to localhost
_然后确保没有防火墙,你不需要在/etc/hosts.allow中打开端口(或者你正在使用的任何东西,如亚马逊政策编辑器)
_你的授权也应该有授权选项(我会使用root以外的东西进行远程访问):
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'pass' WITH
GRANT OPTION;
_然后确保刷新权限(授权后):
flush privileges;