php - 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=production
为APP_ENV=testdummychange
并运行,php artisan env
则会按预期检索更改。
修补匠
通过使用 Tinker 检查我看到的连接:
我正在从 Tinker 调用一个模型,它存在于生产和本地,但在本地有一些虚拟测试,并且总是从本地检索值:
而且,尽管有警告,但您可以立即看到相同的结果,我的意思是,我知道没有缓存任何内容:
值得一提的是,我正在使用 XAMPP 在端口 3306 上运行 MySQL 服务,尽管缺乏常识,但我开始认为这个客户端正在存储一些凭据或其他东西,因为没有任何其他地方可以我可以将数据库凭据放在 Laravel 项目中。
是否有任何其他可能的地方将我的数据库凭据存储在 Laravel/PHP 项目中?我没主意了。
解决方案
好的,首先感谢@MaartenDevand 和@Ryan Vincent 试图帮助我。
对于那些可能面临此类问题的人,我发现DB_SOCKET
我的.env
文件中配置“unix 套接字”的配置无法远程工作,这导致我的连接字符串被覆盖。
只需移除DB_SOCKET
钥匙,一切都会重新开始。
推荐阅读
- css - 当放置在父级范围之外时,“绝对”位置元素不显示?
- amazon-web-services - aws-amplify 从 federatedSignIn 注销
- sql - SQL - 何时以及如何使用 JOIN 进行过滤
- php - WooCommerce 中的购物车总价覆盖
- image-processing - 如何将内核转换为矩阵表示法?
- c++ - CPP - 取消定义 _STRICT_ANSI_ 以便 itoa() 可以工作
- http-headers - 如何添加 HTTP 标头 Logback Logstash
- ios - 为什么不显示添加到我的 Xcode 项目中的子模块中的文件?
- javascript - Firestore 和 Node.js:.set/.update => 将变量作为键传递
- flutter - Flutter FireStore,通过文档键获取文档