繁体   English   中英

从远程计算机访问MYSQL

[英]Accessing MYSQL from a remote computer

下午好,

我正在尝试公开访问客户端服务器(Windows Server 2012)中的mysql数据库设置,以便我的应用程序可以在白天向其发送一些信息。 该应用程序将定位在我的国家/地区,因此本地连接是不可能的。 对于许多用户发布的此问题,我已经采取了许多解决方案,但都无济于事,但是如果您觉得有人提出并回答了这个问题,我深表歉意。

对于初学者,数据库正在3306默认端口上工作,并且联机端口扫描程序将端口检测为开放状态(我联系了ISP,以便他们可以打开该端口)。

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

错误2003(HY000):无法连接到“ xxx.xxx.xxx.xxx”上的MySQL服务器(10061)

我的问题是:即使我的端口检出为开放状态,这也可能是防火墙问题吗? 即使端口打开,它仍然可能是端口转发问题,对吗? 我是否应该要求我的ISP在3306端口上转发所有要发送到特定计算机的请求?

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

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

在Google中搜索“数据库ssh隧道”或“ mysql ssh隧道”。

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

导致我出现问题的部分是防火墙/路由器配置。 您需要打开服务器正在侦听的门,并将其转发到服务器计算机。 就我而言,我无法访问路由器,因此我必须联系我的ISP,并指示他们打开端口并转发端口。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM