2011-04-19 107 views
25

我有一個在Debian服務器上運行的MySQL實例,我可以在本地連接到它,沒有任何問題。但是,我無法遠程連接到它。當我嘗試這從我的命令行,我得到以下錯誤:試圖連接到遠程MySQL主機(錯誤2003)

ERROR 2003 (HY000): Can't connect to MySQL server on '<server-ip>' (110) 

我已經添加了用戶MySQL作爲「localhost」的「用戶」 @「*」和「用戶」 @。此服務器中的skip-networking設置爲false,並在my.cnf中將綁定地址註釋掉。我也嘗試使用以下命令iptables中打開端口3306:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT 

這裏是我的所有的iptable防火牆規則的列表,這是我使用iptables retreived -L:

Chain INPUT (policy DROP) 
target  prot opt source    destination   
ACCEPT  all -- anywhere    anywhere    
REJECT  tcp -- anywhere    anywhere   tcp dpt:auth reject-with icmp-port-unreachable 
ACCEPT  icmp -- anywhere    anywhere   icmp type 8 code 0 state NEW,RELATED,ESTABLISHED,UNTRACKED 
ACCEPT  all -- anywhere    anywhere   state RELATED,ESTABLISHED 
ACCEPT  tcp -- anywhere    anywhere   tcp spts:1024:65535 dpt:ftp state NEW 
ACCEPT  tcp -- anywhere    anywhere   tcp spts:1024:65535 dpt:ssh state NEW 
ACCEPT  tcp -- anywhere    anywhere   tcp spts:1024:65535 dpt:www state NEW 
ACCEPT  tcp -- <my-server>   anywhere   tcp spts:1024:65535 dpt:mysql state NEW 
ACCEPT  tcp -- anywhere    anywhere   tcp dpts:49152:65534 state NEW 
ACCEPT  tcp -- anywhere    anywhere   tcp dpt:mysql 
LOG  all -- anywhere    anywhere   limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
ACCEPT  tcp -- anywhere    anywhere   tcp dpt:mysql 
LOG  tcp -- anywhere    anywhere   tcp dpt:mysql LOG level debug 

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 

不任何人有任何想法我應該從哪裏去?

+0

當您在3306上telnet到時會發生什麼? – 2011-04-19 09:10:15

+0

@Mike:我收到消息「telnet:無法連接到遠程主機:連接超時」。 – hellsgate 2011-04-19 09:18:42

+0

錯誤2003在這裏詳細:http://www.webyog.com/faq/content/23/15/en/error-no-2003-can_t-connect.html – 2012-08-10 10:42:27

回答

12

根據您的迴應,您需要查明您與服務器之間是否存在阻塞連接的設備。當您登錄到服務器時,您還應該確保您可以在該服務器的以太網地址上telnet到3306 ...如果沒有,您可能還沒有將服務綁定到my.cnf的以太網...請參閱bind-address參數。

+0

謝謝你。我認爲我和服務器之間有一個設備。我已經問過服務器所在的地方的問題,並且正在等待響應。當進入服務器時,我可以telnet到3306,儘管連接很快就關閉了。我會發現更多,因爲我發現了。 – hellsgate 2011-04-19 09:34:19

+0

我設法通過中間設備訪問,現在我可以遠程連接。乾杯! – hellsgate 2011-04-19 15:20:08

1

你應該檢查你的MySQL服務器配置,看看它是否綁定到127.0.0.1,那麼你只能連接到MySQL,如果你的應用程序在同一臺服務器上。 有一種簡單的方法,可以安裝webamin,並且可以通過web界面進行控制。

+0

從問題「綁定地址被註釋掉」 – hellsgate 2013-06-13 09:33:37

1

這可能是由於3306端口是關閉的,檢查服務器端口狀態

http://www.yougetsignal.com/tools/open-ports/

如果顯示關閉,這意味着你不能從出方訪問之機,打開端口

UFW - 單純性防火牆

的Ubuntu的默認防火牆配置工具是UFW。 以下是一些如何使用ufw的示例:

首先,需要啓用ufw。從終端提示符下輸入:

sudo ufw enable 

打開一個端口(MySQL的):

sudo ufw allow 3306 

要查看防火牆的狀態,請輸入:

sudo ufw status 
0

如果使用VPN連接來連接遠程數據庫服務器,你有這種錯誤,然後只是檢查了兩個簡單的步驟...

1)在windo請在「控制面板\網絡和Internet \網絡連接」路徑中右鍵單擊局域網並轉至屬性。點擊TCP/IPv4並轉到屬性。確保IP和DNS服務器(如果您使用DHCP或不?)。

2)之後,請重新啓動機器並再次檢查。

希望這會起作用。在我的情況下,它的作品。

注意:請確保您所有的設置都正確無誤。這個答案很有趣,但它適用於我的情況:)

謝謝!

相關問題