mysql link处理
- 在生产过程中,我们可能会遇到因为无效的休眠链接导致某张表无法操作程序一直阻塞的问题
- 这种没有关闭的休眠link可能有各种各样的愿意产生
1.1 代码报错,导致没有自动关闭连接
1.2 人员使用完后没有关闭连接
import pymysql
def Close_Link(ip,user,password,dbname):
"""
ip 是服务器的ip
user 是用来关闭连接的用户,如果是root 会关闭所有用户的休眠连接,否则只会关闭自己的休眠
通过执行show full porcesslist 查看
具体情况可以将状态和状态时间一起判断使用。
"""
db = pymysql.connect(host=ip, user=user, password=password, port=3306, db=dbname, charset="utf8")
cursor = db.cursor()
sql = "show full PROCESSLIST"
cursor.execute(sql)
state_list = cursor.fetchall()
kill_id = []
for i in state_list:
if i[4] == "Sleep":
kill_id.append(i[0])
else:
pass
for j in range(len(kill_id)):
sql = f"kill {kill_id[j]}"
cursor.execute(sql)
cursor.close()