1.最大连接数
项目中可能会遇到MySQL: ERROR 1040: Too many connections”的情况。造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。
查看mysql的最大连接数:
show variables like '%max_connections%';
查看当前连接数:
show global status like 'Max_used_connections';
对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高.
Max_used_connections / max_connections * 100%
MySQL无论如何都会保留一个用于管理员(SUPER)登录的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;
Mysql5.5 mysql5.6 mysql5.7:默认的最大连接数都是151,上限为:100000
Mysql5.0版本:默认的最大连接数为100,上限为16384
设置这个最大连接数值:
set GLOBAL max_connections=1024;
show variables like '%max_connections%';
这种 方式在Mysql重启后就失效。
永久有效方法:
修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
max_connections=512
再重启mysql服务即可。
2.单次最大写入量
抛出的异常是:
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