说明
在使用pymysql时,出现以下报错信息
execute
result = self._query(query)
File "../lib/python3.8/site-packages/pymysql/cursors.py", line 328, in _query
conn.query(q)
File "../lib/python3.8/site-packages/pymysql/connections.py", line 515, in query
self._execute_command(COMMAND.COM_QUERY, sql)
File "../lib/python3.8/site-packages/pymysql/connections.py", line 745, in _execute_command
raise err.InterfaceError("(0, '')")
peewee.InterfaceError: (0, '')
排查
初步查看问题,以为是sql编写错误,后面经过查询发现是因为pymysql连接已经断开,断开有以下几种原因
1 调用次方法之前已经关闭连接
2 数据库本身有超时限制
3 没有建立数据库连接
解决
根据排查原因进行对应解决,其中原因2超时问题,除了修改数据库超时设置和优化代码外,可在执行前加上: self.conn.ping(reconnect=True) 增加判定和重连机制。
不过还是建议从代码逻辑本身来解决该问题
评论区