2013-08-25 116 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值已设置。我不确定我能得到什么其他调试输出? –

相关问题