2009-09-14 105 views
111

我在Linux上安裝了mysql服務器IP = 192.168.1.100,但是當我嘗試連接到這個IP時,它總是報錯(111)。但使用localhost和127.0.0.1即可。無法連接到MySQL服務器錯誤111

 
[email protected]# ifconfig | grep "inet addr" 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 

[email protected]# mysql -ubeer -pbeer -h192.168.1.100 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111) 

[email protected]# mysql -ubeer -pbeer -hlocalhost 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 160 
Server version: 5.1.31-1ubuntu2 (Ubuntu) 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> 

[email protected]# mysql -ubeer -pbeer -h127.0.0.1 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 161 
Server version: 5.1.31-1ubuntu2 (Ubuntu) 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> 

從另一臺機器連接,也錯誤111

 
[email protected]# mysql -ubeer -pbeer -h192.168.1.100 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111) 

如何在這種情況下使用localhost/127.0.0.1和192.168.1.100之間的差異。 我不知道如何從另一臺機器連接到這個數據庫。

請幫忙。 謝謝。

回答

213

這可能意味着你的MySQL服務器只能監聽localhost接口。

如果你有這樣的臺詞:

skip-networking 
bind-address = 127.0.0.1 

在你my.cnf configuration file,你應該評論他們(在行的開頭加#),並重啓MySQL。

​​

當然,要做到這一點,您必須是服務器的管理員。

+6

顯然,他沒有'skip-networking'這行;-) –

+6

如何知道mysql my.cnf位置:http://stackoverflow.com/questions/2482234/how-to-know-mysql-my- cnf-location –

+0

但是當你可以從mysql工作臺連接到它時會發生什麼?我也有同樣的問題。 –

32

111表示連接被拒絕,這反過來意味着你的mysqld只能聽到接口localhost

要更改它,您可能需要查看my.cnf文件的mysqld部分中的bind-address值。

+0

它也值得檢查端口號是否有效。不匹配':3306'和':3307'也會導致111錯誤。 – NXT

+0

@NXT,我甚至不知道mysql是否可以在不同的接口上監聽不同的端口,但即使它可以,它也是不太可能的情況(考慮到原始文章中的症狀)。然後可以有防火牆規則等。有很多方法可以實現這一點,但可能性有所不同...... –

+0

並不總是意味着這一點。我的'my.cnf'文件沒有任何'bind-address'或'skip-networking'這兩行,但我得到了同樣的錯誤。沒有安裝防火牆。跑出想法。 – Deleet

7

如果所有以前的答案沒有給出任何解決方案, 你應該檢查你的用戶權限。

如果你能爲root登錄到MySQL 那麼你應該補充一點:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY '***'; 
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.100' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; 

然後再次嘗試使用mysql -ubeer -pbeer -h192.168.1.100連接。它應該工作。

+14

我不認爲用戶權限相關的錯誤會給錯誤111. – ufk

+1

它實際上工作,我也得到111錯誤。 – Borjante

+0

看起來像是通過註釋127.0.0.1行來打開mysql到整個網絡的更好的解決方案。它應該是最好的解決方案。 – nyxee

6

如果您正在運行cPanel/WHM,請確保IP在防火牆中列入白名單。您還需要將該IP添加到您嘗試連接的cPanel帳戶中的遠程SQL IP列表。

+0

一個很好的「告訴」,看看它是否導致錯誤的防火牆是,它將需要很長一段時間才能返回錯誤。如果MySQL導致問題,響應應該是非常即時的。 –

相關問題