Python的mysql报错AttributeError: ‘NoneType’ object has no attribute 'read’和InterfaceError (0, ‘’)
Python连接数据库进行插入查询操作,运行项目时,会出现多线程操作mysql的连接池,我的情况是可能同时存在多个地方对数据库进行操作,于是一直报这两个错误,刚开始接触python,不清楚这两个是什么导致的,后来查阅资料,找到AttributeError: 'NoneType' object has no attribute 'read'
的解决办法,在每次执行sql语句前加锁,当执行结束后再将锁释放,解决了这个问题,但是还是会报InterfaceError (0, '')
错误,于是我将所有的执行sql时都加上锁,最终这两个问题成功解决,感觉应该是多线程操作mysql连接池有冲突导致的。
附上我的代码
import threading
lock = threading.Lock()
.................
lock.acquire()
self.db.ping(True) # 保证断线重连
self.cursor.execute(sql)
result = self.cursor.fetchone()[0] # 查询结果为一个数组
lock.release()
return result
附上参考链接