偶尔会链接数据库2002Connection refused

[2002] Connection refused at /wwwroot/loveAdmin/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43)

环境 centos 7.3 laravel 版本5.5,php7.1
这个2002的报错,项目几乎每天都有,被折磨了好久,实在是想不到为什么。并不是数据库本身就配置错误的,因为大部分的情况下都是正常链接数据库,但是就是偶尔会遇到这种情况,然后刷新一下就不会再报错了。
在google上看了很多,感觉像是读取env文件的时候会偶尔读取不到,然后我再config中都填写了 default的值。但是还是不能解决
执行了 php artisan config:clear php artisan key:generate等等,但是线上每天还是会有很多这个报错。
知道有没有遇到过类型情况的朋友,能提供一个思路

baby510112

[2017-11-27 15:19:09] local.ERROR: SQLSTATE[HY000] [2002] Connection refused {“exception”:"[object] (Doctrine\DBAL\Driver\PDOException(code: 2002): SQLSTATE[HY000] [2002] Connection refused at /wwwroot/loveAdmin/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:47, PDOException(code: 2002): SQLSTATE[HY000] [2002] Connection refused at /wwwroot/loveAdmin/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43)

liang569874 回复 baby510112

现在解决了没有?

baby510112 回复 liang569874

是因为php env()的这个方法并不是线程安全的, 我们nginx代理到 apache上,apache的工作模式当时是worker模式,改成pfork就好了

yugihuang

之前遇到过这种情况, 都是内存不足导致的.
如果没法加内存的话, 多配置些swap分区空间会有所缓解.