你好,我有一个 MySQL 服务器,需要通过 VPN 访问。
我使用 MySQLdb 包在 Python 中访问 MySQL 服务器。
当我无需 VPN 即可访问服务器时,一切都正常,但当我在某些位置时,我需要通过 VPN 连接。
我的电脑已连接到 VPN,我可以通过 PHPMyAdmin 访问数据库,但 MySQLdb 给出了错误消息:OperationalError: (2003, “无法连接到‘MY_IP’上的 MySQL 服务器 (10061)”)
知道为什么它不起作用吗?谢谢
答案1
PHPMyAdmin 是一个 Web 应用程序,您的 VPN 可能可以轻松让它通过(TCP 端口 80 或 443 上的 https)。但是您的 VPN 可能不允许 MySQL 端口(如果是默认端口,则为 TCP 3306)。
祝你好运,
--杰德
答案2
要检查 Jed 上述建议(如果您使用的是 Windows,请打开 cmd 窗口),请将 192.168.201.1 替换为您的 mysql 服务器的 IP 或主机名。如果它被阻止,您将看到类似以下内容:
$ telnet 192.168.201.1 3306
Trying 192.168.201.1...
并最终超时。
如果你可以到达端口那么你应该会看到类似以下内容:
$ telnet 192.168.201.1 3306
Trying 192.168.201.1...
Connected to 192.168.201.1.
Escape character is '^]'.
?
5.1.37-1ubuntu5.1C[&Elne0d])O5ZG4mKmdConnection closed by foreign host.
如果是前者,则向 VPN/防火墙管理员显示,他们应该能够提供帮助。
希望这可以帮助。
答案3
默认情况下,MySQL 仅允许来自本地主机的 TCP 连接 - 假设您的 python 应用程序与 MySQL 在同一台机器上运行,请确保您的 MySQL 绑定到本地 IP 地址,而不仅仅是 127.0.0.1,并且机器上没有防火墙阻止端口 3306 上的连接。