- Laravel 版本:5.7.28
- PHP版本:7.2.15
- 数据库驱动程序和版本:MariaDB 10.2.23
我在使用 Horizon 的生产服务器上遇到一个错误。
ErrorException: 警告: PDO::prepare(): MySQL server has gone away [internal] in unserialize
您可以在此处查看错误的堆栈跟踪:https ://sentry.io/share/issue/b105b7946b524a9e841f56f44445ea14/
据我所知,这个错误应该被 Laravel 框架捕获。我不确定为什么它没有被捕获并变成 QueryException ,然后会触发重新连接和/或杀死工人。
我的理解是,任何异常都应该被捕获,然后作为 QueryException 重新抛出,然后由框架正确捕获,然后重新连接到数据库。
这是一个偶然的错误,因此很难重现;我试图手动抛出类似的错误,但它被正确捕获并正确处理。
任何关于为什么这个错误在生产中可能会有所不同的一般指导以及关于我如何隔离错误的想法都将不胜感激。