Python丢失MySQL服务器连接
我正在把Python连接到MySQL数据库,并且从安卓设备发送两个双精度值到MySQL中存储,但我遇到了这个错误。
enter code here
Exception in thread :
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 530, in __bootstrap_inner
self.run()
File "C:\Users\ingy\Desktop\New folder (2)\sssssss.py", line 64, in run
self.pacman()
File "C:\Users\ingy\Desktop\New folder (2)\sssssss.py", line 45, in pacman
x.execute("UPDATE location SET x='%s'"%(x1))
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
OperationalError: (2006, 'MySQL server has gone away')
现在
enter code here
OperationalError: (2013, 'Lost connection to MySQL server during query')
2 个回答
1
这种情况通常发生在你的应用程序闲置太久,没有和MySQL进行沟通。你可以选择:
- 增加MySQL服务器的连接超时时间(在你的情况下是
wait_timeout
) - 定期发送一些无效的MySQL查询,比如
SELECT 1
如果你能访问MySQL的连接设置,建议你选择第一种方法。
3
我这样做,在我们的情况下,最糟糕的情况只会出现一次,然后会抛出一个不同的错误,这样就不会出现无限循环的问题。
def query(self, sql, parameters=None):
cursor = self.db.cursor()
try:
cursor.execute(sql, parameters)
return cursor
except mysql.connector.Error as ex:
if ex.errno == 2006: # mysql has gone away
cursor.close()
self.connect()
return self.query(sql, parameters)
raise ex