【问题标题】:Python script hangs when MySQL connector loses connection due to internet or wifi drop当 MySQL 连接器由于 Internet 或 wifi 掉线而失去连接时,Python 脚本会挂起
【发布时间】:2021-05-25 12:10:08
【问题描述】:

我有一个运行在树莓派零 w+ 上的 python 脚本,它不断读取一些传感器并将数据记录在 MySQL 数据库中。该数据库位于与 pi 分开的服务器中,可通过 Internet 访问。 每当互联网连接和/或 wifi 中断时,脚本就会挂起,执行似乎还在继续,但它会无限死亡,直到按 Ctrl+C 或 Ctrl+Z 停止。

我试过用

try:
     cursor.execute(query)
     XXXX 
except:
     pass

避免在光标关闭或错误时脚本崩溃。 我也试过放一个

  try:
    if(conection.is_connected()):
         cursor.execute(query)
         XXXX 
  except:
         pass

但脚本不会引发异常,而是挂起并需要停止。

我也尝试设置连接超时,结果相同。

有什么想法吗?

干杯 J

【问题讨论】:

    标签: python mysql connection timeout dropout


    【解决方案1】:

    解决了! 我将连接器从mysql连接器更改为PyMySQL,它具有read_timeout和write_timeout作为连接参数,当连接丢失并且超时已经过去时会引发异常。我无法使用官方 MySQL 连接器找到此功能。

    干杯 J

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 2019-03-18
      相关资源
      最近更新 更多