一、遇到问题
工作中突然遇到问题
二、查找原因
数据库默认的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, '')解决方案