上下文:
-
到目前为止,我有DB1和DB2以及一个使用DB1的大型应用程序
-
现在我想让laravel(8(应用程序使用DB2(DB1&2都是mysql(
-
我编辑了.env文件以更改DB_HOST,并清除了配置缓存
预期:Laravel使用DB2
问题:Laravel仍然连接到DB1
我尝试过的东西:
-
php artisan config:cache
/清除 -
php artisan optimize:clear
-
重新启动DB1/DB2
-
重新启动nginx
-
重新启动php-fpm
-
重新部署了整个应用程序(安装了composer等(
-
尝试在
config/database.php
中添加新连接,而不是编辑现有连接:相同问题 -
对
config/database.php
中的值进行硬编码,而不是引用env文件:相同问题 -
php artisan db sql
->连接到RIGHT DB(这就是让我发疯的原因( -
。。。但是php artisan tinker似乎没有。我只在DB2中创建了一个伪表(因此在DB1中不存在(,用
DB::connection('mysql')->table('dummy')->get();
获取该表显示了通过tinker 的错误 -
显然,停止DB1会使应用程序离线("No such file or directory"blabla即无数据库PDO(
我甚至不知道该尝试什么了。每一个网上有点相关的帖子都会在简单的artisan config:clear/cache
之后得到解决。。。。
有什么想法吗?
答案是我的.env文件中的DB_SOCKET=/tmp/mysql.sock
,它锁定了与以前(本地(DB的连接。从我的env文件中删除它解决了问题
如果其他答案不能为您解决此问题,您可以尝试手动删除./bootstrap/cache/config.php
和./bootstrap/cache/_config.php
中的缓存。出于某种原因,在我的案例中,php artisan config:cache
似乎没有清除缓存。这是在Laravel的旧版本上(确切地说是5.2.45(。
要更改数据库,需要将数据库名称写入DB_database,而不是DB_HOST。。。