pymysql.err.interfaceerror: 0

一、遇到问题

工作中突然遇到问题


1111.jpeg

二、查找原因

数据库默认的wait_timeout=28800,这个单位是秒,换算后是8小时
也就是原来我的服务启动8小时后,就会被mysql自动断开,如果我没有重连机制那就真的是不能用
经过查询日志,确实有连续8小时以上没有进行数据库操作了

三、解决方案

用下面的代码,使用前检查连接是否存在,断开的话会重连

db = pymysql.connect(host='127.0.0.1',port=3306,user='user', passwd='pwd', db='db_name', charset='utf8')
cur = db.cursor()
sql = 'select * from table_name'
db.ping(reconnect=True)
cur.execute(sql)
db.commit()
cur.close()

参考资料:
pymysql.err.InterfaceError: (0, '')解决办法
【Python】数据库异常pymysql.err.InterfaceError: (0, '')解决方案

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。