在使用python的pymysql或者MySQLdb库连接数据库进行数据读取处理的时候,
当通过其他连接(客户端)向表写数据后,数据库连接会有过期的问题
比如有一张初始数据表test,开始只有4条数据
使用pymysql创建连接查询结果为4条记录
这时若在通过其他客户端(注意是其他客户端,不是当前创建的数据库连接,conn,cursor)向test表插入数据
再次通过当前连接句柄查询test表的数据量,发现仍然只有4条结果
解决方法:
pymysql: 直接通过 conn.connect()刷新数据库连接
- import pymysql as mdb
- conn = mdb.connect(**db_config)
- cursor = conn.cursor()
- sql = "select * from test"
- cursor.execute(sql)
- conn.connect()
- cursor.execute(sql)
复制代码
MySQLdb: 关闭连接后重连
- import MySQLdb as mdb
- conn = mdb.connect(**db_config)
- cursor = conn.cursor()
- sql = "select * from test"
- cursor.execute(sql)
- conn.close()
- conn = mdb.connect(**db_config)
- cursor = conn.cursor()
- cursor.execute(sql)
复制代码