Playframework 2.2和Heroku:无法连接到非Heroku数据库

时间:2014-06-08 08:52:23

标签: mysql heroku playframework-2.2

我的数据库托管在其他地方,我在/ conf文件中有这个:

db.default.driver= com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://myserver.com:3306/mydb"
db.default.user=myusername
db.default.password=mypassword

当我在本地测试它然后它连接到数据库就好了。我能够从表格等中创建/删除。我更改了heroku配置:

heroku config:add DATABASE_URL=mysql://myusername:mypassword@<myserver>:3306/mydb

和procfile

web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS}

当我将它部署到heroku时,我收到错误:

2014-06-08T08:21:35.308207+00:00 heroku[web.1]: State changed from starting to crashed
2014-06-08T08:21:35.309586+00:00 heroku[web.1]: State changed from crashed to starting
2014-06-08T08:21:33.996174+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to    bind to $PORT within 60 seconds of launch
2014-06-08T08:21:33.996382+00:00 heroku[web.1]: Stopping process with SIGKILL
2014-06-08T08:21:35.293114+00:00 heroku[web.1]: Process exited with status 137

错误日志很长。如果您需要更多信息,请与我们联系。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

这是在黑暗中拍摄的,因为日志中没有任何问题迹象,但我遇到了与Heroku类似的“幽灵”失败。

无论出于何种原因,似乎有很大的延迟试图离开他们的网络。在Heroku上使用Apache Thrift RPC系统时,没有任何工作,直到我将连接超时提升到大约30秒。我看到了RabbitMQ(Heroku附加版本)的间歇性故障,并且他们的支持告诉我在这种情况下也会阻止连接超时。

基于此,我会将其添加到您的配置文件中:

db.default.connectionTimeout=30 seconds