MySQL修改连接数

前言

今天公司的很多服务都出现500的异常,排除之后发现是mysql报错了,MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。

查看目前的最大链接数

首先,首先我们来看下mysql的最大连接数:

show variables like'%max_connections%';

执行之后发现我们的连接数只有150,因为是微服务,所以每个微服务都有很多个链接,查看链接详细信息:

show FULL PROCESSLIST;

MySQL修改连接数-飞网

可以看到有很多链接,单单一个微服务就可能有好多链接,所以最大链接数是不够用的。

已经使用链接数

show global status like 'Max_used_connections';
MySQL修改连接数-飞网

因为我已经重启过了,所以这里的已经使用的链接数又重新计算。

连接线程数

show status like 'Threads%';

MySQL修改连接数-飞网

修改链接数方案

方案一:临时修改,重启失效

SET GLOBAL max_connections=512;

方案二:永久有效

可以在/etc/my.cnf里面设置数据库的最大连接数

[mysqld]
max_connections=512

MySQL修改连接数-飞网

方案二记得重启mysql才有效哈。