背景
今天往服务器部署微服务子系统的时候,同事发现一个问题,喊我看了一眼,‘Can not connect to MysqL server. Too many connections MysqL 1040’,一下子反应过来,这是MysqL达到了最大连接数,算了算,还真是差不多了。一个服务初始化20个连接。5个就100,再多还真连不上了。于是设置了一下MysqL的连接数,估计大家也会遇到,在此记录,供大家参考。
解决方案
通常来说,MysqL默认的最大连接数是100,最大可以达到的连接数是16384。
方式一
通过数据库语句进行操作。
查看目前的最大连接数
show variables like "max_connections";
设置MysqL的最大连接数
set GLOBAL max_connections=1000;
这种方式不需要重启服务,直接立即生效。
这种方式,我们需要使用root用户来进行操作,不然会报:1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation。
方式二
vim /etc/my.cnf
加入max_connections=100一行(如果有,直接修改值即可),然后重启服务:/etc/init.d/MysqLd restart,此时生效。
总结
方式二如果配置文件中有max_connections=100,再去用命令修改的话,一旦重启MysqL服务后,会重新以配置文件中指定的连接数为准。
方式一立即生效。