有时候,在连接 MySQL 数据库时,会连接失败,并返回 "too many connections" 的报错信息。这是由于当前 MySQL 的连接数太多,超过了允许的最大连接数。
此时,可以多尝试几次连接 MySQL 数据库或者等待一会儿后再连接。如果一直无法连接到数据库,就需要重启 MySQL 了。
如果尝试几次后,可以连接上 MySQL 数据库了,可以通过如下命令查看当前的连接数:
SHOW STATUS WHERE `variable_name` = 'Threads_connected';
并通过 SHOW PROCESSLIST [1] 命令查看连接详情:
SHOW PROCESSLIST
确认 MySQL 连接数较多是正常的连接需求,而不是由于程序 bug 导致的,就可以提高 MySQL 的最大连接数限制。
MySQL 默认设置的最大连接数是 151,可以通过如下语句查看:
SHOW VARIABLES LIKE '%max_connections%';
将 MySQL 的最大连接数提高到 300:
SET GLOBAL max_connections = 300;
这种通过修改 MySQL 变量来修改 MySQL 配置的方式,可以在不重启 MySQL 服务的情况下,使修改立即生效。但是缺点是,在 MySQL 服务重启后,你所作的修改就会失效。
为了使我们的修改持久有效,需要修改 MySQL 的配置文件。依据 MySQL 的安装方式不同,以及 Linux 发行版的不同,你需要修改的配置文件的位置也会有所不同,具体可以参考你的 Linux 发行版文档和你所使用的安装方式的文档。
在 Ubuntu 18.04 中,通过 APT 安装的 MySQL,需要修改的配置文件是 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 下面,添加如下配置语句:
max_connections = 300
保存文件并退出。
这样在 MySQL 重启后,我们所作的修改依然会有效。
参考:
[1]: https://www.mysqltutorial.org/mysql-show-processlist/
一如既往,如果你对文章中的内容有任何疑问,或者是发现文章中有任何错误,都可以通过留言告诉我;如果你喜欢我的文章,欢迎关注我的微信公众号 Tech For Geek。