背景
今天往服務器部署微服務子系統的時候,同事發現一個問題,喊我看了一眼,‘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服務后,會重新以配置文件中指定的連接數為准。
方式一立即生效。