Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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/8/mysql/55.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 我的discord.py bot总是与Heroku上的MySQL数据库失去连接_Python_Mysql_Heroku_Discord.py_Mysql Connector Python - Fatal编程技术网

Python 我的discord.py bot总是与Heroku上的MySQL数据库失去连接

Python 我的discord.py bot总是与Heroku上的MySQL数据库失去连接,python,mysql,heroku,discord.py,mysql-connector-python,Python,Mysql,Heroku,Discord.py,Mysql Connector Python,所以,我在Heroku上托管的机器人有问题。事实上,我的机器人管理着我用MySQL创建的一个级别系统。我的系统似乎工作得很好,但是,只有在启动bot后几分钟。在此期间,所有命令都在工作。至少在我的bot启动5分钟后,与数据库相关的命令不再工作。写入命令时,日志会写入以下内容: 2020-10-08T21:51:00.344273+00:00 app[worker.1]: Ignoring exception in on_message 2020-10-08T21:51:00.346163+00:

所以,我在Heroku上托管的机器人有问题。事实上,我的机器人管理着我用MySQL创建的一个级别系统。我的系统似乎工作得很好,但是,只有在启动bot后几分钟。在此期间,所有命令都在工作。至少在我的bot启动5分钟后,与数据库相关的命令不再工作。写入命令时,日志会写入以下内容:

2020-10-08T21:51:00.344273+00:00 app[worker.1]: Ignoring exception in on_message
2020-10-08T21:51:00.346163+00:00 app[worker.1]: Traceback (most recent call last):
2020-10-08T21:51:00.346212+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 333, in _run_event
2020-10-08T21:51:00.346213+00:00 app[worker.1]: await coro(*args, **kwargs)
2020-10-08T21:51:00.346215+00:00 app[worker.1]: File "pabBot.py", line 96, in on_message
2020-10-08T21:51:00.346217+00:00 app[worker.1]: await upgrade_level(message.author, message)
2020-10-08T21:51:00.346236+00:00 app[worker.1]: File "pabBot.py", line 19, in upgrade_level
2020-10-08T21:51:00.346238+00:00 app[worker.1]: cursor.execute("SELECT exp, lvl, exp_time FROM level_users WHERE id=%s;", (user.id, ))
2020-10-08T21:51:00.346241+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/cursor.py", line 551, in execute
2020-10-08T21:51:00.346241+00:00 app[worker.1]: self._handle_result(self._connection.cmd_query(stmt))
2020-10-08T21:51:00.346262+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/connection.py", line 490, in cmd_query
2020-10-08T21:51:00.346263+00:00 app[worker.1]: result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
2020-10-08T21:51:00.346281+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/connection.py", line 267, in _send_cmd
2020-10-08T21:51:00.346281+00:00 app[worker.1]: return self._socket.recv()
2020-10-08T21:51:00.346300+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/network.py", line 243, in recv_plain
2020-10-08T21:51:00.346300+00:00 app[worker.1]: raise errors.InterfaceError(errno=2013)
2020-10-08T21:51:00.346325+00:00 app[worker.1]: mysql.connector.errors.InterfaceError: 2013: Lost connection to MySQL server during query
2020-10-08T21:51:00.346399+00:00 app[worker.1]: Ignoring exception in command level:
2020-10-08T21:51:00.347478+00:00 app[worker.1]: Traceback (most recent call last):
2020-10-08T21:51:00.347541+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 85, in wrapped
2020-10-08T21:51:00.347541+00:00 app[worker.1]: ret = await coro(*args, **kwargs)
2020-10-08T21:51:00.347557+00:00 app[worker.1]: File "pabBot.py", line 168, in level
2020-10-08T21:51:00.347557+00:00 app[worker.1]: cursor.execute("SELECT exp, lvl FROM level_users WHERE id=%s", (user.id, ))
2020-10-08T21:51:00.347572+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/cursor.py", line 551, in execute
2020-10-08T21:51:00.347572+00:00 app[worker.1]: self._handle_result(self._connection.cmd_query(stmt))
2020-10-08T21:51:00.347574+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/connection.py", line 490, in cmd_query
2020-10-08T21:51:00.347574+00:00 app[worker.1]: result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
2020-10-08T21:51:00.347591+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/connection.py", line 267, in _send_cmd
2020-10-08T21:51:00.347591+00:00 app[worker.1]: return self._socket.recv()
2020-10-08T21:51:00.347594+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/mysql/connector/network.py", line 243, in recv_plain
2020-10-08T21:51:00.347595+00:00 app[worker.1]: raise errors.InterfaceError(errno=2013)
2020-10-08T21:51:00.347622+00:00 app[worker.1]: mysql.connector.errors.InterfaceError: 2013: Lost connection to MySQL server during query
2020-10-08T21:51:00.347625+00:00 app[worker.1]:
2020-10-08T21:51:00.347625+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2020-10-08T21:51:00.347625+00:00 app[worker.1]:
2020-10-08T21:51:00.347641+00:00 app[worker.1]: Traceback (most recent call last):
2020-10-08T21:51:00.347669+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/bot.py", line 903, in invoke
2020-10-08T21:51:00.347669+00:00 app[worker.1]: await ctx.command.invoke(ctx)
2020-10-08T21:51:00.347688+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 859, in invoke
2020-10-08T21:51:00.347688+00:00 app[worker.1]: await injected(*ctx.args, **ctx.kwargs)
2020-10-08T21:51:00.347709+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 94, in wrapped
2020-10-08T21:51:00.347709+00:00 app[worker.1]: raise CommandInvokeError(exc) from exc
2020-10-08T21:51:00.347734+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: InterfaceError: 2013: Lost connection to MySQL server during query
以下是我的requirements.txt:

当然,我注意到错误是:
mysql.connector.errors.InterfaceError:2013:查询期间与mysql服务器的连接中断

我一直在寻找关于这个错误的信息,但我并没有真正得到它。 我仍然不知道这个错误是服务器端错误,还是客户端错误,或者是因为我的代码。有关信息,我的数据库位于remotemysql.com上。 此外,我尝试在本地重现错误,它也能工作。所以,我不认为这个错误来自Heroku

我的代码非常大,所以我不认为完整地发送它是一个好主意,但我有一些功能可以让我检查我的级别,其他人的级别,并制作排行榜

如果你们知道我的机器人为什么不工作以及错误是什么,我很乐意接受你们的信息!另外,如果你需要更多的细节,我会寄给你


(对不起,我英语不好,我是法国人。^’

又是我。。事实证明,我找到了错误的来源,做了很多测试,结果发现我愚蠢地忘记了在命令结束时关闭连接,并在编写新命令时重新连接连接

因此,我想为这个完全不必要的问题道歉,并感谢那些看到它的人,以及那些试图帮助我的人

(如果你还有其他建议,我很乐意采纳!)

再见

discord.py
dnspython==1.16.0
mysql-connector