【问题标题】:pymysql - Can't connect to MySQL server "Temporary failure" in name resolutionpymysql - 在名称解析中无法连接到 MySQL 服务器“临时故障”
【发布时间】:2019-10-01 23:36:27
【问题描述】:

我正在尝试使用 pymysql 通过 Python 连接到托管在我们的 AWS-RDS 实例上的 MySQL 数据库。我能够成功连接和检索数据,但连接间歇性断开并引发错误 "pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '<my_hostname>' ([Errno -3] Temporary failure in name resolution)")"

请注意,我正在使用 Python 的多处理库来运行池进程。此进程创建的所有线程都在尝试访问数据库。该进程运行了一段时间,然后断开与 MySQL 的连接,不同运行的时间间隔是随机的。

  • 尝试将 RDS url 直接放在客户端代码中
  • 尝试为在代码中进行的单独数据库查询打开单独的游标。
return list(tqdm(pool.imap(createMetricDataJson,res), total=len(res)))

createMetricDataJson 方法调用数据库查询不同的表。

【问题讨论】:

    标签: amazon-ec2 amazon-rds pymysql


    【解决方案1】:

    发生这种情况是因为 MySQL 数据库默认的 8 小时超时限制(如果未发布任何活动)。这可以通过定期向 MySQL 发送心跳来解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      相关资源
      最近更新 更多