pymysql-无法以名称解析方式连接到MySQL服务器“临时失败”

时间:2019-05-14 21:34:55

标签: amazon-ec2 amazon-rds pymysql

我正在尝试使用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网址直接放在客户端代码中
  • 尝试为代码中进行的单独的数据库查询打开单独的游标。
return list(tqdm(pool.imap(createMetricDataJson,res), total=len(res)))

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

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为如果未发布活动,则MySQL数据库默认为8小时超时限制。可以通过定期向MySQL发送心跳来解决此问题。