MySQL是一種常用的關系型數據庫管理系統,但是如果連接失敗或者連接超時,可能會影響數據庫的正常使用,進而影響業務。為了保證數據庫的穩定性和可靠性,我們需要做好自動重連的措施。
import mysql.connector from mysql.connector import errorcode config = { 'user': 'username', 'password': 'password', 'host': 'localhost', 'database': 'dbname' } class DBHelper: def __init__(self): self.conn = None def connect(self): """ 連接數據庫 """ try: self.conn = mysql.connector.connect(**config) print('成功連接到MySQL數據庫') except mysql.connector.Error as err: if err.errno == errorcode.ER_ACCESS_DENIED_ERROR: print('用戶名或密碼錯誤') elif err.errno == errorcode.ER_BAD_DB_ERROR: print('數據庫不存在') else: print(err) def execute(self, sql, args=None): """ 執行SQL語句 """ cursor = self.conn.cursor() try: cursor.execute(sql, args) self.conn.commit() print('成功執行SQL語句') except mysql.connector.Error as err: print(f'執行SQL語句出錯: {err}') self.connect() # 重新連接數據庫 cursor = self.conn.cursor() cursor.execute(sql, args) self.conn.commit() print('成功執行SQL語句') def close(self): """ 關閉數據庫連接 """ if self.conn: self.conn.close() print('關閉MySQL數據庫連接') db = DBHelper() db.connect() db.execute('insert into user (name, age) values (%s, %s)', ('tom', 20)) db.close()
以上代碼通過實現一個DBHelper類,可以實現自動重連的功能。當執行SQL語句出錯時,會自動重新連接數據庫,然后重新執行SQL語句。我們可以在需要操作數據庫的地方直接調用該類中的方法,即可實現數據庫的自動重連功能。
上一篇css向下移動怎么設置
下一篇css向右移動對齊