我最近将我的laravel应用程序从5.1升级到5.4。我的服务器现在运行在PHP7和Maria db 10.1.22上。现在我得到了一个非常奇怪的错误。有时,我只是尝试刷新我的浏览器,PHPMyAdmin会显示#1040 - Too many connections。其他时候,我会点击我的应用程序上的新链接,然后会得到同样的错误。我在互联网上做了一些研究,并执行了以下命令:
show variables like 'max_connections`上面的命令给出了100。然后我将其增加到500。
但现在我还是得到了错误。这对我来说很奇怪,因为我在另一台服务器上安装了oracle MySQL5.6,max_connections是151,一年半以来我都没有遇到过这个错误。
当我运行命令show processlist时,我得到了下面的结果,并且不断增加。这是正常的吗?

Mariadb可能有什么问题,我该如何解决它。
发布于 2017-07-10 19:35:41
我不确定你们是否找到了解决方案,但我也面临着同样的问题,并找到了解决方案。当我们将laravel应用程序从5.2升级到5.4时,我们遗漏了一些重要的东西。php工匠队列:工作也升级了。
在laravel 5.2中,当我们执行queue:work时。它一次只处理一个作业,但在laravel 5.4队列中:work为队列创建连接并使其保持连接。所以如果你有queue:在cron中每分钟运行一次,它每分钟都会创建一个新的连接,这就是为什么我们会得到连接太多的错误。
我在laravel 5.4文档中找不到这些信息。我通过php artisan查看了queue:work的描述,发现描述被更改了。
这是在laravel 5.2中的描述:
队列:work >>>>处理队列中的下一个作业
这是在laravel 5.4中描述的
队列:work >>>>开始将队列中的作业作为后台进程进行处理
正如您可以看到的那样,它们的目的是不同的。
我希望这能帮到你。
谢谢。
发布于 2017-05-30 01:56:21
也许这是一个愚蠢的观察,但是你有没有使用DB::disconnect('foo')来关闭你的数据库的连接呢?
不管怎么说,数据库会自动关闭,所以问题可能出在别的地方,你有没有试过监控?
innotop是监视MySQL的一个非常强大的工具。你可以在这里找到它:
https://github.com/innotop/innotop
检查this
发布于 2017-05-30 13:37:23
您使用的是什么What服务器。如果是Apache,那么它的 (以前称为MaxClients)的设置是什么?一般来说,它应该不超过20。
如果该值设置为大于max_connections,则可以解释您所看到的情况。
https://stackoverflow.com/questions/44248036
复制相似问题