1)connection.ping()函数会校验连接的可用性,如果连接不可用将会产生异常;
2)利用这一特性,构造一个连接检查循环,出现异常时不断尝试连接数据库,直到连接恢复;
3)采用这样的机制不需要关闭数据库功能
检测流程如下:
一、连接数据库,返回数据库连接对象
import pymysql
def connect():
conn = pymysql.connect(host='localhost', user='root', password='dong', db='mydb', port=3306)
return conn
二、生成连接对象的实例
c = connect()
三、数据库连接检测函数
def fun(i):
global c
try:
c.ping() # 采用连接对象的ping()函数检测连接状态
print('connect-%d ok' % i)
# 出现异常重新连接
except:
c = connect()
四、定时检测数据库连接状态
import time
i = 0
while True:
fun(i)
i += 1
time.sleep(10)