从虚拟机打开远程 MySQL 端口 3306

从虚拟机打开远程 MySQL 端口 3306

我的笔记本电脑上有一个 CentOS VM,运行仅主机和 NAT 适配器。

我想连接到 Bluehost 服务器上的外部 MySQL 数据库。根据 Bluehost 的说法,端口 3306 已打开。

当我跑步时

nmap -v -sV localhost -p 3306

在我的虚拟机上,它发现 127.0.0.1 上开放了端口 3306/tcp。

由于我的 IP 是 192.168.56.101,我不确定是否要将端口设置为 127.0.0.1?不确定如何进一步配置。提前致谢。


在 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

不确定这是目的地还是源头,或者两者兼而有之?!这甚至是输入吗?

答案1

您需要授予权限以允许用户远程连接以及更改 /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,请将 % 替换为该 IP。

答案2

如果您能够从虚拟机看到远程服务器端口 3306 已打开,那么这听起来像是 MySQL 配置问题。另一台服务器上的 MySQL 实例可能拒绝您的连接,因为它不是本地连接。这是 MySQL 的开箱即用行为;它不会接受远程连接。

如果您想启用远程连接,请尝试从 MySQL 实例发出以下命令:

mysql> GRANT ALL PRIVILEGES ON *.* TO '[email protected]' IDENTIFIED BY "pass";

这将允许用户 yourUsername 从 IP 地址 xxx.yyy.zzz.aaa 连接到 MySQL 服务器。

相关内容