Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MongoDB Atlas连接没有';我不在Heroku工作_Python_Mongodb_Heroku_Discord.py_Mongodb Atlas - Fatal编程技术网

Python MongoDB Atlas连接没有';我不在Heroku工作

Python MongoDB Atlas连接没有';我不在Heroku工作,python,mongodb,heroku,discord.py,mongodb-atlas,Python,Mongodb,Heroku,Discord.py,Mongodb Atlas,我正在为服务器创建一个discord.py机器人。我正在寻找免费的VPS,我找到了一个Heroku。我学会了如何使用它,并托管了我的另一个机器人几个小时。然后我用MongoDB Atlas数据库创建了另一个机器人。问题是,当我想使用必须使用数据库的命令时,它不起作用,并且会发送一个错误。其他命令也起作用 我做了一些研究,但在一些论坛上,他们说如果不提供信用卡的详细信息,这是不可能的,有些人说这是可能的,但没有说如何做到 这是我从heroku日志中得到的错误: Traceback (most re

我正在为服务器创建一个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

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

如果不是这样,我建议您查看服务器日志文件并检查错误所在


希望这有帮助

我知道你已经找到了Heroku,就我个人而言,我会使用repl.it,因为它不需要任何资金,有很好的启动时间和很好的支持。与Heroku不同,您可以长时间运行机器人


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

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