Google Cloud SQL + Heroku

use*_*398 4 heroku google-cloud-sql

这是我收到的错误消息!

2014-03-13T08:30:21.010764+00:00 heroku[web.1]: Starting process with command `node dbserver.js`
2014-03-13T08:30:22.485293+00:00 app[web.1]: listening on 14218
2014-03-13T08:30:22.486771+00:00 app[web.1]: lo 127.0.0.1
2014-03-13T08:30:22.551389+00:00 app[web.1]: 
2014-03-13T08:30:22.554354+00:00 app[web.1]:     at Protocol.end (/app/node_modules/mysql/lib/protocol/Protocol.js:78:13)
2014-03-13T08:30:22.554354+00:00 app[web.1]:     at Socket.<anonymous> (/app/node_modules/mysql/lib/Connection.js:78:28)
2014-03-13T08:30:22.554354+00:00 app[web.1]: Error: Connection lost: The server closed the connection.
2014-03-13T08:30:22.554354+00:00 app[web.1]:     at Socket.EventEmitter.emit (events.js:117:20)
2014-03-13T08:30:22.554354+00:00 app[web.1]:     at _stream_readable.js:920:16
2014-03-13T08:30:22.554354+00:00 app[web.1]:     at process._tickCallback (node.js:415:13)
2014-03-13T08:30:24.327286+00:00 heroku[web.1]: Process exited with status 8
Run Code Online (Sandbox Code Playgroud)

当我在本地测试(与工头或没有),它的工作原理!我已在Google Cloud SQL的授权网络中添加了我的IP地址,以及我的应用程序的IP地址.

我使用http://www.hcidata.info/host2ip.cgi来查找我的网络应用程序的IP地址.

任何人都有同样的经历吗?

Ste*_*ren 8

您的问题可能类似于此问题中的问题:

您的问题可能是Cloud SQL不允许您的Dyno的IP地址.因为Heroku dyno网格本质上是动态的,所以给定dyno将随时间分配的IP地址将是动态的和不可预测的.

如在另一个问题中所提到的,您可以使用代理Heroku附加组件来为您提供静态IP.

解决方法可以是在Cloud SQL实例中将0.0.0.0/0(所有可能的IP地址)列入白名单.如果您这样做,我强烈建议您为数据库连接要求SSL.