2013-10-12 113 views
-3

我開發了一個帶有MySQL和node.js實現的PHP應用程序。 我試圖連接到我的生產數據庫這樣的:mysql_connect()失敗 - 錯誤(4)

mysql_connect('54.212.117.38', 'root', '********'); 

這是我得到的錯誤:

Could not connect: Can't connect to MySQL server on '54.212.117.38' (4) 

不得不提的是,我可以通過瀏覽器直接到達phpMyAdmin的。

此外,在本地主機上應用程序連接到MySQL沒有問題。 我也嘗試重新啓動Apache服務器,關閉Node.js過程...

順便說一句 - 我的生產服務器正在運行Ubuntu。

有沒有人有一個想法是什麼原因,它不工作?

+1

最有可能的是,MySQL配置爲僅偵聽本地主機連接(如果數據庫主機直接連接到Internet,通常是一個不錯的主意) –

+0

大多數連接使用本地主機而不是ip –

+0

非常感謝,你幫了我很多,我只是改成了localhost,一切正常。 – omri

回答

0

有不止一種可能性。一些建議:

  • 確保該IP地址後面的mysql服務器正在運行並接受連接。
  • 確保用戶可以從您的客戶端訪問ip。
  • 檢查一下,如果連接過程可能過長(在這種情況下,您可以嘗試增加connect_timeout)。
  • 如果沒有其他幫助,請跟蹤客戶端和服務器之間的流量。也許防火牆有點過於激進(我曾經這麼做過,用戶root觸發了IDS規則......)。

從旁邊看,mysql擴展從PHP 5.5.0開始已棄用,並且將來會被刪除。相反,應該使用MySQLi或PDO_MySQL擴展。

+0

也很重要:遠離'mysql_connect()' – DaGardner