2013-08-25 136 views
4

我在Heroku上有多個(免費)應用程序,所有這些應用程序都使用PHP和MySQL。但是,其中一個我經常遇到與ClearDB(MySQL)有關的問題。我收到以下錯誤MySQL(ClearDB)無法在Heroku上工作

SQLSTATE [HY000] [2002]無法通過套接字 '/var/run/mysqld/mysqld.sock'(2)

當連接到本地MySQL服務器我嘗試從我的本地機器連接到它,它工作正常。我曾嘗試刪除ClearDB插件並多次添加它,但這並未解決問題。這已經持續了大約3周。

這裏是我的代碼:

public $production = array(
    'datasource' => 'Database/Mysql', 
    'persistent' => false, 
    'host' => 'us-cdbr-east-04.cleardb.com', 
    'login' => 'username', 
    'password' => 'password', 
    'database' => 'heroku_9565d18e1870f97', 
    'prefix' => '', 
    //'encoding' => 'utf8', 
); 

,這裏是我得到的URL從Heroku的/ ClearDB

mysql://username:[email protected]/heroku_9565d18e1870f97?reconnect=true 

任何想法,現在該怎麼辦?我的代碼是否正確?我可能會問Heorku的支持,但我寧願先問社區,因爲我現在不支付Heroku。

+0

使用MySQL工作臺連接到ClearDB時有同樣的問題。 –

+0

如果您確定您使用的是正確的信譽,請嘗試刪除ClearDb插件並再次添加它。這是最終爲我解決的問題。我已經完成了50次,最後還是有效的。 –

回答

2

看起來您的連接字符串可能缺失或錯誤。

ClearDB插件設置了一個名爲CLEARDB_DATABASE_URL的環境變量。它包含您在嘗試連接時需要使用的mysql連接字符串。

+0

這就是我正在使用的。就像我說的,當我嘗試從我的本地環境連接。它工作正常。它在Heorku上不起作用。 –

+0

這個錯誤表明mysql正試圖通過unix套接字而不是通過TCP進行連接,也許嘗試獲得一些調試輸出以確保CLEARDB_DATABASE_URL的值被設置。 – ctcherry

+0

CLEARDB_DATABASE_URL值已設置。我不確定我能得到什麼其他調試輸出? –

相關問題