使用pymysql.cursors.SSDictCursor游标类,偶尔会报如下异常:

Exception ignored in: <bound method MySQLResult.__del__ of <pymysql.connections.
MySQLResult object at 0x036C7630>>
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\pymysql\connections.py", line
1152, in __del__
self._finish_unbuffered_query()
File "C:\ProgramData\Anaconda3\lib\site-packages\pymysql\connections.py", line
1261, in _finish_unbuffered_query
packet = self.connection._read_packet()
File "C:\ProgramData\Anaconda3\lib\site-packages\pymysql\connections.py", line
692, in _read_packet
packet_header = self._read_bytes(4)
File "C:\ProgramData\Anaconda3\lib\site-packages\pymysql\connections.py", line
729, in _read_bytes
self._sock.settimeout(self._read_timeout)
AttributeError: 'NoneType' object has no attribute 'settimeout'

解决方法:
改变MySQL服务器选项,增加值​​​net_read_timeout​​​和​​max_allowed_packet​​,

临时设置:

set global net_read_timeout = 200
set global max_allowed_packet=

查看结果:

SHOW VARIABLES LIKE '%net_read_timeout%'

​https://dev.mysql.com/doc/refman/8.0/en/error-lost-connection.html​