欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql數據庫自動重連

方一強2年前11瀏覽0評論

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語句。我們可以在需要操作數據庫的地方直接調用該類中的方法,即可實現數據庫的自動重連功能。