启用 MySQL 客户端自动重新连接 MySQLdb
在 Python 中,MySQLdb 提供了一种连接 MySQL 数据库的便捷方法。然而,维持持久连接可能会遇到问题,例如连接丢失。
问题:如何在 MySQLdb 中启用自动重新连接?
解决方案: 尽管存在处理这种情况的 PHP 方法,但 MySQLdb 缺乏类似的直接方法。但是,使用自定义函数可以提供解决方案。
以下代码片段演示了如何实现自动重新连接:
import MySQLdb class DB: conn = None def connect(self): self.conn = MySQLdb.connect() def query(self, sql): try: cursor = self.conn.cursor() cursor.execute(sql) except (AttributeError, MySQLdb.OperationalError): self.connect() cursor = self.conn.cursor() cursor.execute(sql) return cursor db = DB() sql = "SELECT * FROM foo" cur = db.query(sql) # Simulate a connection timeout with a delay time.sleep(600) cur = db.query(sql) # Connection still active
在此示例中,查询方法尝试执行查询。如果发生连接错误,它将重新连接并重试查询。尽管间歇性连接断开,此机制仍可确保持久的数据库交互。
以上是如何在 MySQLdb 中启用自动重新连接以实现持久数据库交互?的详细内容。更多信息请关注PHP中文网其他相关文章!