2012-01-22 84 views
1

我正在寫一個Python應用程序,運行在我的Windows機器上,我試圖連接到我的MySQL服務器上的一個Linux機器上。我在Python的本地linux代碼框中編寫代碼並連接到MySQL數據庫上沒有問題,但是當我嘗試通過本地網絡連接時,它失敗了。Python和MySQLDB連接到網絡上的另一臺服務器

db = MySQLdb.connect(host="192.168.0.100", user="root", passwd="password", db="db") 

我得到:

_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '192.168.0.100' (10061)")

我如何能做到這一點有什麼想法?

+0

訪問/你有你的Linux機器上安裝了防火牆?或者,根允許從本地主機以外的任何其他主機連接到您的MySQL? – dgw

+0

懷疑這與Windows有什麼關係。檢查您的權限在mysql框中,他們可以通過域名。哦,是一個靜態的IP,你可以從窗口框到達嗎? –

+0

並設置另一個用戶來完成它。暴露root權限是一個壞主意。 –

回答

2

這可能是一個MySQL配置問題。

確保MySQL正在監聽192.168.0.100(或0.0.0.0)而不是127.0.0.1上。通過設置bind-address option來完成此操作。

爲了安全考慮,建議使用root而不是使用root遠程連接。然後授予它訪問特定IP( - 範圍):GRANT ... TO [email protected]'192.168.0.%',假設您的本地IP位於192.168.0.0/24。

的另一件事是檢查,以確保您的防火牆允許從端口3306

+0

謝謝大家,我使用ufw來允許在端口3306上訪問,並將綁定地址從127.0.0.1設置爲192.168.0.100。現在重新啓動。 – Xerphiel

+1

請不要使用root。 :(爲應用程序/角色創建一個用戶,讓遠程訪問數據庫 –

+0

感謝Rob Wouters等人,所以總結我做了: ufw允許在mysql中使用GRANT的端口3306 ,允許用戶從遠程IP 添加到我的mysql連接端口 我將創建一個新的用戶,更改綁定地址爲192.168.0.100 – Xerphiel

相關問題