pymysql 处理 连接超时最好的解决方案

错误类型 在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误:

  • ERROR 2013 (HY000): Lost connection to MySQL server during query
  • ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect...
好的,让我们看看这两个错误对应 pymysql 中的异常类型吧
2013 错误码对应的是什么异常类型? 【pymysql 处理 连接超时最好的解决方案】先看第一个 2013 对应的异常类型
constants/CR.py
CR_SERVER_LOST = 2013

connections.py
raise err.OperationalError( CR.CR_SERVER_LOST, "Lost connection to MySQL server during query", )

可以看到对应的错误类型是 OperationalError
2006 错误码对应的是什么异常类型? 再看第二个 2006 对应的异常类型
constants/CR.py
CR_SERVER_GONE_ERROR = 2006

connections.py
raise err.OperationalError( CR.CR_SERVER_GONE_ERROR, "MySQL server has gone away (%r)" % (e,) )

可以看到对应的错误类型是 OperationalError
operational 是什么意思? 看看 有道翻译 中的解释吧
operational
英 [??p??re???nl] 美 [?ɑ?p??re???nl]
adj. (机器、设备等)正常运转的,可使用的;操作的,运营的,业务的;军事行动的;操作论的,操作主义的
从这个翻译来看,这个异常类是一个很宽泛的异常类
参考文章: MySQL中interactive_timeout和wait_timeout的区别

    推荐阅读