如何修复MySQL错误:连接过多

MySQL错误简介:连接过多

当您的 Web 应用程序(网站、博客、论坛等)访问量很高时,意味着大量用户访问,这会导致服务器资源消耗增加。如果该 Web 应用程序使用 MySQL 数据库,并且查询数量非常多(由于网站编程不佳或用户量过大),MySQL 可能会显示以下错误:

mysqli_connect(): (HY000/1040): Too many connections

MySQL:连接过多错误是什么意思?

这意味着进入MySQL的请求太多,超过了它的接受范围,也超过了排队或等待的范围。

怎么解决呢?

很简单,我们必须增加MySQL支持的请求(连接)的最大限制。

我将给您两个选择来解决此问题:

1.我们编辑文件 /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

在其中,我们将以下内容写在[mysql]:

max_connections = 500 max_user_connections = 500

这会将最大连接数从100(默认值)增加到500。

我们保存并退出,然后重新启动MySQL服务,仅此而已。 此更改是永久性的。

2.解决此问题的另一种方法是通过更改最大限制,但使用 MySQL 查询。

让我们首先显示当前限制:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

这将向我们显示以下内容:

+ ----------------- + ------- + | 变量名| 价值| + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

换句话说,当前限制为151个连接,好吧,通过查询将其提高到500个:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

准备好了!

这样的问题是,当重新启动服务时,此配置将丢失。

为了弥补这个细节,您可以制作一个每隔 X 时间检查一次的 bash 脚本,甚至将该行添加到守护程序的启动或重新启动块中 

但那我为什么想知道第二个选项呢? ……好吧,我就是这么说的。但是一个月前,Ubuntu 服务器忽略了方法 2,所以...在愚蠢操作系统的极端情况下,我们有第二个选项,效果同样好 


在 Google 中将其添加为首选来源