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

Byr*_*ahl 6 mysql remote-access firewall centos connection

  • 连接到:CentOS v?? 与 MySQL 4.?? 在纳什维尔(例如公共 ip=11.11.11.11)

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

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

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

  • 在我的路由器上打开端口 3306 并将其转发到我的 MySql 框的本地 IP 地址。
  • 按照此博客条目中的说明进行操作。
  • 在 MySql 中创建了一个用户,可以访问我想要的数据库 (username@22.22.22.22)。** 当然,它甚至还不到这一步......只是想我会包括这个。

当我尝试从达拉斯的盒子 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
Run Code Online (Sandbox Code Playgroud)

但是,我可以从 22.22.22.22 ping 11.11.11.11(抱歉格式错误......我试过):

C:\Documents and Settings\Administrator>ping 11.11.11.11

用 32 字节的数据 Ping 11.11.11.11:

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

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

11.11.11.11 的 IP 表如下:

[root@centos ~]# /sbin/iptables -L Chain INPUT (policy ACCEPT) target
prot opt source
destination
RH-Firewall-1-INPUT all -- 任何地方
tcp -- 22.22.22.22 任何地方tcp dpt:mysql

Chain FORWARD (policy ACCEPT) target
prot opt source
destination
RH-Firewall-1-INPUT all -- 任何地方

Chain OUTPUT (policy ACCEPT) target
prot opt source
destination

Chain RH-Firewall-1-INPUT (2 个参考) target prot opt source destination ACCEPT all -- 任何地方 ACCEPT icmp -- 任何
地方 icmp any ACCEPT
esp -- 任何地方 ACCEPT ah -- 任何
地方 ACCEPT udp -- 任何地方 224.0. 0.251 udp dpt:mdns ACCEPT udp -- 任何地方
udp dpt:ipp ACCEPT tcp -- 任何地方
tcp dpt:ipp ACCEPT all -- 任何地方
状态 RELATED,ESTABLISHED ACCEPT
tcp -- 任何地方状态 NEW tcp dpt:mysql ACCEPT
tcp -- 任何地方状态 NEW tcp dpt:ssh REJECT all -- 任何地方都拒绝-with icmp-host-prohibited

@Sunny:现在,本地IP 地址列在/etc/my.conf 中。为了看看发生了什么,我用 11.11.11.11 替换了本地 IP 地址。当我这样做时,MySql 无法启动备份。我猜绑定地址必须是框中实际的 ip 地址。

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

有任何想法吗?不是Linux人,我有点盲目。

Sun*_*nny 3

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

可能是这样,它只在本地网络上侦听。

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

如果启用此设置(通常仅绑定到 localhost 127.0.0.1),请将其注释掉,它将允许 MySql 侦听所有可用接口。

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

我强烈建议您使用 ssh 隧道通过 Internet 访问计算机。

在 Windows 上,您可以使用putty来 ssh(创建隧道)到 MySql 计算机。您可以将本地的3306端口转发到远程,然后您可以使用localhost:3306访问MySql服务器。