MongoDB Atlas连接在Heroku上不起作用

时间:2019-07-26 07:42:36

标签: python mongodb heroku discord.py mongodb-atlas

我正在为服务器创建一个discord.py机器人。我在寻找免费的VPS,并且找到了一个Heroku。我学会了如何使用它,并在另一个小时内托管了另一个机器人。然后,我使用MongoDB Atlas数据库创建了另一个机器人。问题是,当我要使用必须使用数据库的命令时,它不起作用,并发送错误。其他命令有效

我已经进行了一些研究,但是在一些论坛上,他们说如果不提供您的信用卡详细信息是不可能的,还有一些人说有可能,但是没有说怎么做。

这是我从heroku日志中得到的错误:

Traceback (most recent call last):
2019-07-25T19:08:37.808124+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 863, in invoke
2019-07-25T19:08:37.808126+00:00 app[worker.1]:     await ctx.command.invoke(ctx)
2019-07-25T19:08:37.808132+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/core.py", line 728, in invoke
2019-07-25T19:08:37.808133+00:00 app[worker.1]:     await injected(*ctx.args, **ctx.kwargs)
2019-07-25T19:08:37.808134+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/core.py", line 88, in wrapped
2019-07-25T19:08:37.808136+00:00 app[worker.1]:     raise CommandInvokeError(exc) from exc
2019-07-25T19:08:37.808165+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ServerSelectionTimeoutError: connection closed,connection closed,connection closed

3 个答案:

答案 0 :(得分:1)

我知道您已经找到了Heroku,就我个人而言,我会使用repl.it,因为它不需要任何金钱,而且运行时间长,支持出色。与Heroku不同,您可以长时间运行该机器人。

如果您不喜欢切换,是否在requirements.txt中使用了pymongo

答案 1 :(得分:0)

这很可能是SSL证书错误。您可以在托管数据库时设置自己的ssl_certfile选项-可以找到与该here相关的文档。

如果不是这种情况,建议您查看您的服务器日志文件并检查错误所在。

希望这会有所帮助!

答案 2 :(得分:0)

如果仅将本地IP列入白名单,则可能会出现此问题。牺牲安全性的一种简单解决方法是将MongoDB Atlas集群中的任何IP(0.0.0.0/0)列入白名单。或者,您可以使用VPC对等。