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,所以...在愚蠢操作系统的极端情况下,我们有第二个选项,效果同样好