2012-06-14 138 views
2

最近幾天我遇到了一個奇怪的問題,無法在RDS上連接到mysql,而手動連接沒問題。PHP無法連接到RDS上的MySQL

因此,我有幾個PHP腳本坐在我們的服務器上,這個腳本位於EC2上,並且這些腳本被客戶端調用以與坐在RDS上的mysql服務器進行通信。這些腳本的設置使得如果發生連接錯誤,他們會向我發送電子郵件通知。

因此,最近幾天我收到了來自我的腳本的數千個錯誤電子郵件,最初幾天的錯誤很簡單,說服務器主機無法識別,但我確信地址是正確的。而現在,這些錯誤幾乎都是說「Host XXX由於連接錯誤而被阻止,使用mysqladmin flush-hosts解鎖」。如果我刷新主機,一段時間後錯誤會回覆給我。

最讓我困惑的是,我無法重現問題!我嘗試通過命令行和通過測試php腳本從我的EC2服務器連接到RDS服務器......他們都工作!如果我手動調用向我發送錯誤電子郵件的腳本,它們也可以工作!看看RDS顯示器,所有的數據看起來都很正常,CPU跳動了50%左右,還有很多硬盤空間。

所以我現在完全困惑......任何人都可以提供一些關於如何解決這個問題的見解?我甚至不知道現在在哪裏看...

+0

你打電話給亞馬遜嗎? –

+0

您是否閱讀過文檔?您是否使用相同的用戶/密碼憑據測試連接? http://dev.mysql.com/doc/refman/5.6/en/blocked-host.html –

+0

@Paul不,我還沒有叫亞馬遜,我張貼在他們的論壇上,但他們並沒有真的看着它。 –

回答

0

你需要檢查你的連接到mysql服務器並檢查錯誤。在此之前,您可以通過cron「flush hosts」來臨時解決問題。請注意,這應該只用作臨時修復。

+0

感謝您的答案保羅,經過這麼長時間後,問題消失了,只需通過擴大RDS。我認爲這是亞馬遜方面的一個缺陷,沒有真正的文件記錄,但其原因是神祕的。無論如何,我會接受你的答案來解決這個問題。 –