Laravel一直连接到旧的数据库连接



上下文:

  • 到目前为止,我有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。。。

最新更新