从远程计算机访问MYSQL

时间:2014-04-08 15:03:40

标签: mysql

下午好,

我试图让公共访问客户端服务器(Windows Server 2012)中的mysql数据库设置,以便我的应用程序可以在白天向它发送一些信息。该应用程序将定位在我的国家/地区,因此本地连接是不可能的。我已经按照许多用户发布的这个问题的许多解决方案,但没有一个工作,但我很抱歉,如果你觉得这已被问及答案。

对于初学者,数据库正在使用3306默认端口,并且在线端口扫描程序将端口检测为打开(我联系了我的ISP,以便他们可以打开端口)。

我编辑了mysql配置文件“my.ini”来注释bind-address值,以便它监听它所连接的任何ips(localhost.lan和public ip)。 我可以使用127.0.0.1,10.0.0.129(本地局域网)上的mysql.exe连接到数据库但是当我尝试使用公共IP地址或我的主机名(一个解析为我的公共IP的dyndns.org域名)地址)我收到以下错误:

  

ERROR 2003(HY000):无法连接到'xxx.xxx.xxx.xxx'上的MySQL服务器(10061)

我的问题是: 即使我的端口检查为打开,这可能是防火墙问题吗?即使端口打开,它仍然可能是端口转发问题,对吗?我应该要求我的ISP将3306端口上的所有请求移植到特定的机器上吗?

2 个答案:

答案 0 :(得分:0)

访问数据库的最佳方法是使用ssh隧道。 大多数数据库客户端允许您这样做(例如,如果您的操作系统是Windows,则为MySQL Workbench。)

想法是通过ssh连接远程服务器,然后使用localhost ip打开mysql连接。

在谷歌搜索“数据库ssh隧道”或“mysql ssh隧道”。

答案 1 :(得分:0)

事实证明,其他线程上的所有建议都是正确的。要使您的MySQL服务器可以从公共计算机访问,您需要删除MySQL配置文件(my.ini)中的绑定地址行。服务器应该开始监听它的任何可用网络。 然后,您需要创建具有适当权限的用户来访问您的数据库remotelly。使用此方法https://stackoverflow.com/a/8454003/1338401

导致我出现问题的部分是防火墙/路由器配置。您需要打开服务器正在侦听的门并将其移植到服务器计算机上。在我的情况下,我无法访问路由器,所以我不得不联系我的ISP,并指示他们打开端口和端口转发它。

许多人指出MySQL使用未加密的tcp / ip连接进行连接,并且出于安全原因不应使用此解决方案。