无法连接到远程服务器上的MySql服务器

  • 连接到:CentOS v ?? 用MySql 4。 在纳什维尔(例如public ip = 11.11.11.11)

    堆栈:电缆调制解调器作为网关>转发路由器> CentOs Box

  • 连接:达拉斯的Windows 2003 R2(例如public ip = 22.22.22.22)

我想通过我的公共IP从远程服务器访问我的MySql服务器。 当我尝试连接时,在几秒钟后出现“无法打开与主机的连接”的错误。 它没有机会要求我login凭据。 以下是我为打开远程连接打开此服务器所做的一些操作:

  • 打开我的路由器上的端口3306,并将其转发到MySql框的本地IP地址。
  • 遵循这个博客条目的指示。
  • 在MySql中创build一个用户,访问我所需的数据库([email protected])。 **当然,它甚至没有这么远…只是想我会包括这个。

当我试图从达拉斯的箱子telnet到3306港口的纳什维尔的箱子时,我得到这个:

C:\Documents and Settings\Administrator>telnet 11.11.11.11 3306 Connecting To 11.11.11.11...Could not open connection to the host, on port 3306: Connect failed 

不过,我可以从22.22.22.22 11.11.11.11(抱歉格式不好…我试过):

C:\ Documents and Settings \ Administrator> ping 11.11.11.11

Pinging 11.11.11.11与32个字节的数据:

回复11.11.11.11:bytes = 32 time = 57ms TTL = 54 Reply from 11.11.11.11:bytes = 32 time = 61ms TTL = 54 Reply from 11.11.11.11:bytes = 32 time = 56ms TTL = 54 Reply from 11.11.11.11 :字节= 32时间= 57ms TTL = 54

Ping 11.11.11.11的统计数据包:已发送= 4,已收到= 4,丢失= 0(0%丢失),以毫秒为单位的往返时间:最小= 56ms,最大= 61ms,平均= 57ms

11.11.11.11的IP表格如下:

[root @ centos〜]#/ sbin / iptables -L Chain INPUT(policy ACCEPT)目标
protselect源
目的地
RH-Firewall-1-INPUT全部在任何地方
tcp – 22.22.22.22任何地方tcp dpt:mysql

连锁FORWARD(政策接受)目标
protselect源
目的地
RH-Firewall-1-INPUT全部在任何地方

连锁OUTPUT(策略ACCEPT)目标
protselect源
目的地

链路RH-Firewall-1-INPUT(2参考)目标protselect源目的地ACCEPT全部 – 任何地方任何地方ACCEPT icmp – 任何位置
任何地方icmp任何接受
ESP – 在任何地方接受接受啊 – 在任何地方
任何地方ACCEPT udp – 任何地方224.0.0.251 udp dpt:mdns ACCEPT udp – 随时随地
udp dpt:ipp ACCEPT tcp – 任何地方的任何地方
tcp dpt:ipp接受所有 – 任何地方的任何地方
状态RELATED,build立了接受
tcp – 任何地方的任何地方状态新tcp dpt:mysql接受
tcp – 任何地方的任何地方状态新tcp dpt:ssh拒绝所有 – 在任何地方拒绝-with icmp-host-prohibited

@Sunny:现在,本地IP地址列在/etc/my.conf中。 为了看看发生了什么,我用11.11.11.11取代了本地IP地址。 当我这样做,MySql无法启动备份。 我猜这个绑定地址实际上是一个ip地址。

我可以使用本地IP地址从同一networking上的另一台机器连接到MySql。 但是,即使在本地,我也无法使用11.11.11.11连接。

有任何想法吗? 不是一个Linux的家伙,我有点瞎了。

检查my.conf和MySql服务器有哪些绑定。

它可能是这样的,它只侦听本地networking。

您正在/etc/my.conf或/etc/mysql/my.conf中查找绑定地址设置。

如果启用此设置(通常只绑定到本地主机127.0.0.1),注释掉它,这将允许MySql侦听所有可用的接口。

无论如何,通过Internet直接访问数据库服务器根本不是一个好主意。

我强烈build议你使用SSH隧道通过Internet访问机器。

在windows上,你可以使用putty把ssh( 创build一个通道 )到MySql机器中。 您可以将本地3306端口转发到远程端口,然后使用localhost:3306访问MySql服务器。