BUG排查:PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1040] Too ma

来源:互联网 发布:云计算市场分析报告 编辑:程序博客网 时间:2024/05/08 06:49

报错:

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1040] Too many connections' in /xxx/vendor/illuminate/database/Illuminate/Database/Connectors/Connector.php:47Stack trace:#0 /xxx/vendor/illuminate/database/Illuminate/Database/Connectors/Connector.php(47): PDO->__construct('mysql:host=192....', 'shoptsmaster', 'fuyuan1906', Array)

现象:

连接的进程老是被打断掉

排查:数据库问题

排查一:是不是长连接
排查二:数据库连接是否正常

查看数据库状态:show status like '%onn%';Aborted_connects 一直在增加

排查三:查看数据库短时间连接是否正常

原因:

mysql资源没有及时被释放
sql执行太快,导致链接太多

解决方法:

1、数据库连接过多,程序有问题,初步方案,建立连接的时候sleep
2、更改程序,数据库连接的复用。

类似现象:

1、闭包导致mysql进程被打断掉。

备注:

1、因为数据库长期看是正常的,运维说数据库没问题。
2、调整 mysql 超时时间 180s => 300s,现象不再出现。
以上两条导致了误导,根本原因还是数据库连接过多。

阅读全文
0 0
原创粉丝点击