我有一个python脚本,它正在查询共享linux主机上的MySQL服务器。出于某种原因,对MySQL的查询通常会返回“服务器已消失”错误:
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
如果之后立即再次尝试查询,通常会成功。因此,我想知道python中是否有一种合理的方法来尝试执行查询,如果失败,请重试,最多可尝试固定次数。也许我想在完全放弃之前尝试5次。
这是我的代码类型:
conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()
try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
except MySQLdb.Error, e:
print "MySQL Error %d: %s" % (e.args[0], e.args[1])
很明显,我可以通过在除外条款中再次尝试来做到这一点,但这太丑陋了,我觉得一定有一种体面的方法来实现这一点。