mysql超过最大连接数
!!!!!!!!!!!!!!!!!!!!!!!!
游标记得关闭!!!!
游标记得关闭!!!!
游标记得关闭!!!!
仅仅关闭数据库是不行的,需要先关闭游标再关闭数据库!!!
!!!!!!!!!!!!!!!!!!!!!!!!
道友切记啊!!!!!!!!!!!!!!!!!!!
最近部署了一个项目,经过一段时间发现了些问题。
在运行一段时间后,会出现超过最大连接数的错误,于是针对这个方面进行了一些了解。
以下解释基于个人理解以及项目情况,有不对的地方希望大家指出。
首先使用的是pymysql模块,业务代码无误,数据库也进行了close操作。
按照理想的情况推测,链接-关闭,往复循环,虽然会出现连接数增加的情况,在insert,undate,delete等操作后会关闭连接,
但是结果不尽人意
一度连接数高达几百个,然而在本地测试连接数并不多。
在不考虑修改任何配置文件的情况下(公用的服务器,不太能重启或者修改等操作)
1.可以考虑多条sql,批量执行
cursor.executemany(sql,data)
2.也可以考虑使用链接池来限制链接数
下面放一下,监听连接数的代码:
import pymysql import time sum = 0 while True: #open db connection db = pymysql.connect(host="",user="",password="",database='') #use cursor() cursor = db.cursor() #use execute() run sql cursor.execute("show variables like '%max_connections%';") #USE fetchone() Max = cursor.fetchone() cursor.execute("show global status like 'Max_used_connections';") History_max = cursor.fetchone() cursor.execute("show global status like 'Threads_connected';") Currently = cursor.fetchone() sum = sum + 1 print("\n--------------------------------\n") print("统计日期 :",time.strftime('%Y-%m-%d %H:%M:%S')) print("当前统计次数 :",sum) print("mysql最大连接数 :",Max[1]) print("mysql历史最大连接数 :",History_max[1]) print("mysql当前最大连接数 :",Currently[1]) cursor.close() db.close() time.sleep(5)
本文来自博客园,作者:黑山老道,转载请注明原文链接:https://www.cnblogs.com/meipu/p/15762854.html