最近一个项目中并发过高没配置并发数报错;最后发现是MySql连接数过多,记录一下,

MySQL无论如何都会保留一个用于管理员(SUPER)登录的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;
Mysql5.5 mysql5.6 mysql5.7:默认的最大连接数都是151,上限为:100000 
Mysql5.0版本:默认的最大连接数为100,上限为16384

查看MySql最大连接数:

show variables like '%max_connections%';

查看MySql当前连接数:

show global status like 'Max_used_connections';

设置MySql当前连接数:

set GLOBAL max_connections=100000;

以上方法在Mysql重启后就失效。

永久有效方法:
修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:max_connections=512
再重启mysql服务即可。

附加:单次最大写入量

抛出的异常是:

Packet for query is too large . You can change this value on the server by setting the max_allowed_packet' variable.

5.6.37版本的mysql默认单条语句最大4mb。

查看最大单次写入量max_allowed_packet

show VARIABLES like '%max_allowed_packet%';

修改my.cnf,在[mysqld]下新增:

max_allowed_packet = 16M
最后修改:2023 年 07 月 25 日
您的赞赏是对我最大的支持。