已部署的数据库没有连接

时间:2018-06-12 03:44:40

标签: javascript database heroku knex.js cleardb

我已将应用程序部署到heroku:https://stark-citadel-91743.herokuapp.com/

应用程序最初正确加载,直到您单击需要数据库的按钮。然后它崩溃了。

一切都适用于本地开发环境。我相信我已经在heroku仪表板的配置变量(数据库URL,数据库名称,用户名,密码)中正确设置了生产的所有连接设置。但在生产中它不起作用。

两个证据表明它没有正确设置: 1)当我在“当前连接”下登录ClearDB MySQL插件(在我的heroku仪表板中)时,它说“当前没有与数据库建立连接。” 2)当我使用邮递员点击我为测试对数据库的请求而做的自定义端点时,我得到:“添加颜色时出错:错误:连接ECONNREFUSED 127.0.0.1:3306”< - 127.0.0.1似乎很有启发性。为什么部署的数据库会在该地址上建立连接?

任何线索?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的数据库也设置在keroku主机:

检查数据库设置(用户名,密码,端口等)

如果您确实需要连接回自己的数据库(由您或其他第三方托管);

您应该找到设置并替换为127.0.0.1:3306,这仅适用于本地环境

更新

127.0.0.1是localhost,这是你的机器。您的测试用例正在运行,因为您的服务器和数据库托管在同一台计算机上(它们都具有相同的IP)。但是,当您的代码部署到heroku时,您的heroku服务器无法找到托管在同一台计算机上的数据库。这就是你遇到这个问题的原因