MySQL默认长链接只能保持8小时,超过后就会自动断开。

peewee报错:

OperationalError: (2006, ‘MySQL server has gone away’)

在peewee2中如何维持长连接,可以如下操作:

from peewee import MySQLDatabase
from playhouse.shortcuts import RetryOperationalError

class RetryMySQLDatabase(RetryOperationalError, MySQLDatabase):
pass

db = RetryMySQLDatabase(
host='127.0.0.1',
database='dataname',
user="root",
passwd="123456",
charset='utf8'
)

Python3中已经去除​​RetryOperationalError​​, 后来的版本又加上了(2021-03-03补充)

不过作者不推荐使用,想象如果在一个事务中,断开了链接,进行了自动重连

from peewee import MySQLDatabase
from playhouse.shortcuts import ReconnectMixin

# 防止断开 see: https://github.com/coleifer/peewee/issues/1992
class ReconnectMySQLDatabase(ReconnectMixin, MySQLDatabase):
"""peewee作者不推荐使用"""
pass


参考
peewee解决问题”OperationalError: (2006, ‘MySQL server has gone away’)”