我正在为服务器创建一个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
最佳答案
如果您仅将本地 IP 列入白名单,则可能会出现此问题。牺牲安全性的一个简单解决方法是将 MongoDB Atlas 集群中的任何 IP (0.0.0.0/0) 列入白名单。或者您可以使用 VPC 对等互连。
关于python - MongoDB Atlas 连接在 Heroku 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57215356/