Mon 14th December 2020 By David T. Sadler.
One of the first things you do when creating a new Larvel application is run php artisan migrate to create the application database tables. However you may come across the below message.
$ php artisan migrate
Illuminate\Database\QueryException
  SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (SQL: select * from information_schema.tables where table_schema = testsite and table_name = migrations and table_type = 'BASE TABLE')
  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
    674▕         // If an exception occurs when attempting to run a query, we'll format the error
    675▕         // message to include the bindings with SQL, which will make this exception a
    676▕         // lot more helpful to the developer instead of just the database's errors.
    677▕         catch (Exception $e) {
    678▕             throw new QueryException(
    679▕                 $query, $this->prepareBindings($bindings), $e
    680▕             );
    681▕         }
    682▕
      +33 vendor frames
  34  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()The cause of this issue is due to a change introduced to the .env.example file. This changed the environment variable DB_HOST from 127.0.0.1 to mysql. The reason for this change is to support [Laravel Sail](https://laravel.com/docs/8.x/sail) which is a Docker development environment for Laravel.
The change means your Laravel application will try and connect to a database server with the hostname of mysql. Unless this exists then the application can't connect.
To resolve the issue just change the value back to 127.0.0.1
DB_HOST=127.0.0.1I don't have comments as I don't want to manage them. You can however contact me at the below address if you want to.
Email david@davidtsadler.comCopyright © 2021 David T. Sadler.
Return to Homepage.