php Laravel保持连接到旧数据库连接

axkjgtzd  于 2023-02-28  发布在  PHP
关注(0)|答案(3)|浏览(205)
    • 背景:**
  • 到目前为止,我有DB1和DB2,还有一个使用DB1的laravel应用程序
  • 现在我希望laravel(8)应用程序使用DB2(DB1和2都是mysql)
  • 我编辑了. env文件以更改DB_HOST并清除了配置缓存
    • 预期**:使用DB2的Laravel
    • 问题**: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--〉连接到正确的数据库(这就是让我发疯的原因)
  • ......但是php artisan tinker似乎没有。我只在DB2中创建了一个虚拟表(所以在DB1中不存在),并且通过tinker使用\DB::connection('mysql')->table('dummy')->get();获取该表时显示了一个错误
  • 显然,停止DB1会使应用程序离线("No such file or directory",即没有数据库PDO)

我都不知道该尝试什么了,网上的每一个帖子都是在一个简单的artisan config:clear/cache之后解决的。
有什么想法吗?

6pp0gazn

6pp0gazn1#

答案是我的.env文件中的DB_SOCKET=/tmp/mysql.sock,它锁定了与以前(本地)DB的连接。

amrnrhlw

amrnrhlw2#

如果其他答案不能解决这个问题,你可以尝试手动删除./bootstrap/cache/config.php./bootstrap/cache/_config.php中该高速缓存。在我的例子中,由于某种原因,php artisan config:cache似乎没有清除缓存。这是在旧版本的Laravel上(确切地说是5.2.45)。

but5z9lq

but5z9lq3#

要更改数据库,您需要将数据库名称写入DB_DATABASE,而不是DB_HOST...

相关问题