我的笔记本电脑上有一台CentOS虚拟机,运行一台主机和一个NAT适配器。
我正在寻找连接到Bluehost服务器上的外部MySQL数据库。 根据Bluehost 3306端口是打开的。
当我跑步
nmap -v -sV localhost -p 3306
在我的VM上,它发现127.0.0.1上的开放端口3306 / tcp。
我不确定我是否需要127.0.0.1上的端口,因为我的IP是192.168.56.101? 不知道如何进一步configuration。 提前致谢。
在iptables中,我添加了这两行:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --sport 3306 -j ACCEPT
不知道这是一个目的地或来源或两者? 这是甚至INPUT?
您将需要授予权限以允许用户远程连接以及更改/etc/mysql/my.cnf中的绑定地址:
bind-address = 127.0.0.1
将其更改为:
bind-address = 0.0.0.0
重启你的mysql服务器
/etc/init.d/mysql restart
0.0.0.0表示你将听所有的接口。
现在授予用户远程连接权限:
GRANT ALL PRIVILEGES ON DATABASE.* TO 'user'@'%' IDENTIFIED BY "pass";
%意味着从任何IP,如果你只想让这个为某个IP,用IPreplace%。
如果您能够看到远程服务器端口3306从您的虚拟机打开,那么这听起来像是一个MySQLconfiguration问题。 您的其他服务器上的MySQL实例可能会拒绝您的连接,因为它不是本地连接。 这是MySQL的开箱即用行为; 它不会接受远程连接。
如果要启用远程连接,请尝试从MySQL实例中发出以下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO '[email protected]' IDENTIFIED BY "pass";
这将允许用户,yourUsername从IP地址xxx.yyy.zzz.aaa连接到MySQL服务器。