無法連接到遠端伺服器上的 MySql 伺服器
- 連接到: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 中創建了一個可以訪問我想要的數據庫的使用者(使用者名@22.22.22.22)。** 當然,它甚至沒有走到這一步……只是想我會包括這個。
當我嘗試從達拉斯的盒子遠端登錄到納什維爾的 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 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 的回复:字節=32 時間=57ms TTL=54 來自 11.11.11.11 的回复:字節=32 時間=61ms TTL=54 來自 11.11.11.11 的回复:字節=32 時間=56ms TTL=54 來自 11.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
鏈 RH-Firewall-1-INPUT(2 個參考)目標 prot opt source destination ACCEPT all – 任何地方 ACCEPT icmp – 任何
地方任何地方 icmp 任何地方 ACCEPT
esp – 任何地方任何地方 ACCEPT 啊 – 任何地方任何
地方 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 – 任何地方的任何地方都拒絕-使用 icmp-host-prohibited
@Sunny:現在,本地 ip 地址列在 /etc/my.conf 中。為了查看發生了什麼,我將本地 ip 地址替換為 11.11.11.11。當我這樣做時,MySql 無法啟動備份。我猜綁定地址必須是框中實際的 IP 地址。
我可以使用本地 IP 地址從同一網路上的另一台機器連接到 MySql。但是,即使使用本地,我也無法使用 11.11.11.11 進行連接。
有任何想法嗎?不是linux的人,我有點盲目。
檢查 my.conf 和 MySql 伺服器有什麼綁定。
可能是這樣,它只在本地網路上偵聽。
您正在/etc/my.conf 或/etc/mysql/my.conf中尋找綁定地址設置。
如果啟用此設置(通常只綁定到 localhost 127.0.0.1),將其註釋掉,它將允許 MySql 監聽所有可用的介面。
無論如何,直接通過 Internet 訪問數據庫伺服器根本不是一個好主意。
我強烈建議您使用 ssh 隧道通過 Internet 訪問機器。
在 Windows 上,您可以使用putty ssh(創建隧道)進入 MySql 機器。您可以將本地 3306 埠轉發到遠端埠,然後您可以使用 localhost:3306 訪問 MySql 伺服器。