skip to Main Content

Context :

  • I have DB1 and DB2 and a laravel application using DB1 so far

  • I want now that laravel (8) application to use DB2 instead (both DB1 & 2 are mysql)

  • I edited the .env file to change the DB_HOST and cleared the config cache

Expected : Laravel using DB2

Problem : Laravel still connects to DB1

Things I’ve tried :

  • php artisan config:cache / clear

  • php artisan optimize:clear

  • restarted DB1/DB2

  • restarted nginx

  • restarted php-fpm

  • redeployed the whole app (with composer install etc.)

  • tried adding a new connection in config/database.php instead of editing the existing one : same issue

  • hardcoding the values in config/database.php instead of referencing the env file : same issue

  • php artisan db sql –> connects to the RIGHT DB (this is what’s driving me insane)

  • … but php artisan tinker doesn’t seem to. I created a dummy table in DB2 only (so not present in DB1) and getting that table with DB::connection('mysql')->table('dummy')->get(); shows an error via tinker

  • obviously, stopping DB1 makes the application go offline ("No such file or directory" blabla ie. no database PDO)

I don’t even know what to try anymore. Every post somewhat related online are solved after a simple artisan config:clear/cache ….

Any thoughts appreciated ?

3

Answers


  1. Chosen as BEST ANSWER

    The answer was DB_SOCKET=/tmp/mysql.sock in my .env file that locked the connection to the previous (local) DB. Removing that from my env file solved the issue


  2. to change the database you need to write the database name on DB_DATABASE instead on DB_HOST…

    Login or Signup to reply.
  3. In case the other answers do not solve this for you, you can try to manually delete the cache in ./bootstrap/cache/config.php and ./bootstrap/cache/_config.php. For some reason in my case php artisan config:cache didn’t seem to be clearing the cache. This was on an older version of Laravel (5.2.45 to be exact).

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search