如何在python中将MySQLdb连接超时设置为无穷大

时间:2018-09-24 08:59:25

标签: python mysql

我每10个小时就会在数据库上执行一些任务。在脚本开始时,我只连接了一次数据库。 10小时后,数据库连接超时。 我可以在这里使用其他方法,但是我想知道如何将Connection timeout设置为infinity。 10小时后,出现以下错误。

代码:

import MySQLdb,time

db = MySQLdb.connect("hostname", "user", "password", "db_name")

while True:
    db.commit() # to refresh database
    cursor = db.cursor()
    cursor.execute("some query here") 
    db.commit()
    cursor.close() 
    time.sleep(36000)# Wait for 10 hours

错误

  

OperationalError:(2006年,“ MySQL服务器已消失”)

2 个答案:

答案 0 :(得分:1)

问题是从db服务器端关闭了连接,您要做的是;

  • 更改mysql的超时 或更有用
  • 只需在循环中再次重新连接到数据库

如果您使用的是Linux,则可以每隔X秒使用cron来启动脚本,如果您使用的是Windows,则可以使用调度任务服务在需要时启动脚本。

答案 1 :(得分:0)

文档中有两个超时。一个是write_timeout,另一个是connect_timeout

connect_timeout-连接时引发异常之前的超时。

  

(默认值:10,最小值:1,最大值:31536000)

write_timeout –写入连接的超时时间(秒)

  

(默认:无-无超时)

据我了解,您需要使用connect_timeout。

希望这会有所帮助!干杯!