背景
今天往服务器部署微服务子系统的时候,同事发现一个问题,喊我看了一眼,‘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。
方式二
打开mysql的配置文件。
vim /etc/my.cnf
加入max_connections=100一行(如果有,直接修改值即可),然后重启服务:/etc/init.d/mysqld restart,此时生效。
总结
方式二如果配置文件中有max_connections=100,再去用命令修改的话,一旦重启mysql服务后,会重新以配置文件中指定的连接数为准。
方式一立即生效。