无法从heroku连接到Mongodb数据库

时间:2020-06-10 05:29:50

标签: mongodb heroku strapi mongodb-atlas heroku-cli

我使用import Bio from Bio.Blast import NCBIWWW f=open('smn.fasta').read() result=NCBIWWW.qblast("blastn","nt",f) 创建了一个trapi网站,并选择了mongo作为数据库。我在MongoDB地图集中创建了一个名为yarn create strapi-app velankannimatha的数据库。

设置了配置变量(即velankannimathadbDATABASE_URI之后,我将网站推送到了Heroku。

但是应用程序不断崩溃。当我查看日志时说

服务器无法正常启动。 连接到Mongo数据库时出错。服务器选择在30000毫秒后超时

error log

我能够本地访问数据库(处于开发模式)。它仅在从Heroku运行时失败。 任何帮助都非常感激

3 个答案:

答案 0 :(得分:0)

这可能是由于Mongo Atlas仅允许来自特定IP地址的连接。参见the docs。尽管不建议这样做,但您可以使用0.0.0.0/0使群集可用于任何IP。您可能还会发现troubleshooting docs也很有帮助。

答案 1 :(得分:0)

您需要将config/server.js主机密钥从localhost更改为0.0.0.0,因为Strapi试图绑定到localhost,而Heroku正在寻找暴露的服务器以“代理”

先前的答案还可能是您的Mongo集群确实需要允许访问0.0.0.0/0,因为heroku dynos随时间变化,并且每次使用不同的IP。

答案 2 :(得分:0)

现在正在工作。出问题的是,我使用的是MongoDB版本2.2.12 or later(根据documentation)。当我切换到版本3.6 or later并使用更新的连接字符串时,一切正常。

此外,从终端添加连接字符串作为config vars也会引起问题,即使将其保存后,也会丢失一些字符。所以我从浏览器中添加了它们。

这个article在中等水平上也有很大帮助。