首页 > 解决方案 > Laravel:无法将数据库连接从本地更改为远程

问题描述

嗯,这是要了我的命。

我尝试了一切可能的方法来更改 Laravel 项目中的连接,但没有任何效果,并且一直与我拥有的本地数据库连接绑定。这是我的项目拥有的两个数据库:

在此处输入图像描述

我大部分时间都在本地工作,但我需要在生产上运行一些命令(我可以轻松连接 MySQL Workbench,因为我的 IP 在白名单上),所以我需要更改它。我的“ .env ”和“ database.php ”配置指向生产数据库的ip,我已经运行了所有清除缓存的命令php artisan config:clear-> php artisan cache:clear-> php artisan config:cache,之后我还看到了我的bootstrap/cache/config .php与正确的数据。

我知道这是在读取我的 .env 文件,因为如果我更改APP_ENV=productionAPP_ENV=testdummychange并运行,php artisan env则会按预期检索更改。

修补匠

通过使用 Tinker 检查我看到的连接:

在此处输入图像描述

我正在从 Tinker 调用一个模型,它存在于生产和本地,但在本地有一些虚拟测试,并且总是从本地检索值:

在此处输入图像描述

而且,尽管有警告,但您可以立即看到相同的结果,我的意思是,我知道没有缓存任何内容:

在此处输入图像描述

值得一提的是,我正在使用 XAMPP 在端口 3306 上运行 MySQL 服务,尽管缺乏常识,但我开始认为这个客户端正在存储一些凭据或其他东西,因为没有任何其他地方可以我可以将数据库凭据放在 Laravel 项目中。

是否有任何其他可能的地方将我的数据库凭据存储在 Laravel/PHP 项目中?我没主意了。

标签: phpmysqllaravel

解决方案


好的,首先感谢@MaartenDevand 和@Ryan Vincent 试图帮助我。

对于那些可能面临此类问题的人,我发现DB_SOCKET我的.env文件中配置“unix 套接字”的配置无法远程工作,这导致我的连接字符串被覆盖。

只需移除DB_SOCKET钥匙,一切都会重新开始。


推荐阅读