2

我有一个 MySQL 服务器作为 Windows 服务在我的 Windows 7 计算机上运行。当我尝试 在命令提示符下使用external.ip = my ip address from http://www.whatismyip.com/连接到它时:

mysql -h external.ip -u root -p

它返回:

ERROR 2003 (HY000): Can't connect to MySQL server on external.ip (10060)

但是,当我将external.ip更改为ipconfig命令列出的 IP 地址时,我可以将其连接到它:

mysql -h ipconfig.ip -u root -p

我已经更改了 root 的权限以接受任何主机(使用诸如Accessing a mysql database from external host/ip? (ie: mysql workbench)之类的命令)。在数据库中:

SELECT host, user FROM user;

返回(总结):

| host   | user |
-----------------
| %      | root |

此外,在我的 my.ini 文件中,没有任何一行显示跳过网络。

前几天我在external.ip与ipconfig.ip相同的不同网络上尝试此操作时效果很好。这可能是问题的根源还是还有其他原因?

4

1 回答 1

6

如果http://www.whatismyip.com/和您从 ipconfig 获得的地址不同,这意味着您正在使用本地路由器(可能是您用来连接互联网的路由器)进行网络地址转换。换句话说,您有一个本地网络(在您家或您最喜欢的网吧中),该网络具有专用网络地址,例如 192.168.0.1 或 10.0.0.1。

MySQL 通常在端口 3306 上侦听入站连接请求。但是,当您尝试通过您的公共 IP 地址(我的 IP 地址是什么)进行连接时,您的网络提供商会将请求发送到您的路由器。路由器注意到端口 3306,但它可能不知道如何处理它。所以它默默地忽略了这个请求。您用于建立连接的软件然后超时。这很好。破解者会尝试连接到这样的端口,以查看它们是否可以进入您的计算机。

因此,要使其正常工作,您需要配置路由器以将传入的 TCP 请求通过端口 3306 传递到运行 MySQL 服务器的机器。它可能有一个配置屏幕来执行此操作。它将在您拥有的路由器上运行。它不适用于咖啡店路由器。

如果您不确定“端口”是什么意思,或者您为什么从 ipconfig 和http://www.whatismyip.com/获得不同的 IP 地址,那么您可能需要先了解更多有关互联网技术的知识你应该尝试这种事情。

于 2013-06-17T21:53:14.030 回答