Laravel连接数据库失败的诡异问题

晚上被运营叫起来了,发现一些本该上架的信息没有上架,观察发现是计划任务出现了问题,报数据连接超时:SQLSTATE[HY000] [2002] Connection time out。

找了一半天没有发现问题,config(“database”)看配置也是对的。

最后在框架的Connection类里打出pdo调试信息,发现数据库地址居然是测试环境的,全局搜索测试环境地址:

find ./ -name "*.php" | xargs grep  "1.1.1.1"

发现在一个Console/Command的Test测试文件的全局部分出现了,如下图:

由于Laravel在命令行运行的时候,会全局的加载所有的Command文件,分析出命令字等信息,所以造成了这段代码被执行,所以才引起了这个错误。