MySQL修改连接数
MySQL修改连接数
前言
今天公司的很多服务都出现500的异常,排除之后发现是mysql报错了,MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。
查看目前的最大链接数
首先,首先我们来看下mysql的最大连接数:
show variables like'%max_connections%';
执行之后发现我们的连接数只有150,因为是微服务,所以每个微服务都有很多个链接,查看链接详细信息:
show FULL PROCESSLIST;
可以看到有很多链接,单单一个微服务就可能有好多链接,所以最大链接数是不够用的。
已经使用链接数
show global status like 'Max_used_connections';
❝
因为我已经重启过了,所以这里的已经使用的链接数又重新计算。
❞
连接线程数
show status like 'Threads%';
修改链接数方案
方案一:临时修改,重启失效
SET GLOBAL max_connections=512;
方案二:永久有效
可以在/etc/my.cnf里面设置数据库的最大连接数
[mysqld]
max_connections=512
方案二记得重启mysql才有效哈。