Das Folgende ist der Fehlerinhalt
terminal
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from information_schema.tables where table_schema = db_name and table_name = migrations and table_type = 'BASE TABLE')
at /var/www/html/laravel-vue-app/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attempting to run a query, we'll format the error
666| // message to include the bindings with SQL, which will make this exception a
667| // lot more helpful to the developer instead of just the database's errors.
668| catch (Exception $e) {
> 669| throw new QueryException(
670| $query, $this->prepareBindings($bindings), $e
671| );
672| }
673|
Exception trace:
1 PDOException::("PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known")
/var/www/html/laravel-vue-app/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("mysql:host=mysql;port=3306;dbname=db_name", "db_user", "db_password", [])
/var/www/html/laravel-vue-app/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
Zusammenfassend scheint es, dass die Einstellungen für docker-compose.yml und .env mysql identisch sein müssen.
Überprüfen Sie, ob .env unter laravel (app /) vorhanden ist-> Der Hostname muss mit dem Containernamen des Dockers übereinstimmen Muss geändert werden, wenn es einen Unterschied im Inhalt von docker-compose.yml gibt Nach der Änderung
docker
docker-compose stop
docker-compose up -d
Es ist notwendig zu tun Grund: Der Neustart spiegelt nicht die Einstellungen von docker-compose.yml wider Wenn Sie die Einstellungen von .env widerspiegeln möchten
terminal
php artisan config:cache
Muss reflektiert werden in
Anscheinend der App-Container, in dem Laravel abgerechnet wird-> der DB-Container, in dem MySQL erstellt wird Es scheint, dass bei der Kommunikation ein Fehler aufgetreten ist. Geben Sie bei der Kommunikation zwischen Docker-Containern die IP-Adresse des Containers ein, in dem MySQL erstellt wurde. Es ist notwendig zu verwenden
terminal
cat /etc/hosts | awk ‘END{print $1}’ | sed -r -e ‘s/[0-9]+$/1/g’
Sie können die IP-Adresse des Containers mit überprüfen Sie sollten überprüfen, ob die Host-IP von .env unter der App identisch ist.
Recommended Posts