【问题标题】:JDBC - can't connect remotely to MySQL ServerJDBC - 无法远程连接到 MySQL 服务器
【发布时间】:2016-05-30 07:18:03
【问题描述】:

我无法从连接到另一个网络的笔记本电脑 (Windows 7) 连接(使用 JDBC)到我的家用计算机 (Windows 8.1) 上托管的 MySQL 数据库。作为连接 url,我使用“jdbc:mysql://192.168.0.102:3306/..”并且我已将所有权限授予我尝试连接的用户。我已经评论了#skip-networking 和#bind-address(我也尝试了bind-address=0.0.0.0)。

问题是,如果我将笔记本电脑带到我家(与托管数据库的计算机在同一网络上),它可以正常工作,但是当笔记本电脑连接到外部网络时它不再连接。

谢谢!!

【问题讨论】:

  • 你需要有公网IP才可以在不同的网络上远程工作
  • “连接到另一个网络” 两个网络是如何连接的?如果您必须通过外部 Internet 从一个到另一个,那么这将需要在服务器的 Internet 路由器上设置一些端口转发。可能是Network Engineering 的问题。

标签: java mysql database jdbc


【解决方案1】:

IP 地址 192.168.XXX.XXX 是本地地址,这意味着它们无法从路由器边界之外到达,除非您在路由器上设置了端口转发。

当您从网络外部连接到您的 WAN 地址上的特定端口时,连接将被转发到您在路由器中设置的 pc/端口。

有一些非常好的在线工具可以帮助您进行配置,例如http://portforward.com/

请注意,转发/打开路由器上的端口可能会使您的网络更容易受到黑客攻击。

【讨论】:

    【解决方案2】:

    2 个问题。

    *1

    U 尝试使用 localNetworkIP 连接到数据库。 在主机上打开https://www.whatismyip.com/,然后你就得到了电脑的互联网IP。 小心,很可能你的互联网 IP 会随着时间的推移(每 24 小时)发生变化,或者你有一个静态 IP。如果不是,您必须使用 DynDNS 提供商将您更改的 IP 地址连接到 DNS 域。

    *2

    PORT 3306 必须在 HOST 的路由器中打开。

    【讨论】: