Heim  >  Artikel  >  PHP-Framework  >  Lösen Sie das Problem, dass Laravel keine Verbindung zur Datenbank herstellen kann, wenn Windows Docker zum Ausführen von PHP-Containern und MySQL-Containern verwendet wird

Lösen Sie das Problem, dass Laravel keine Verbindung zur Datenbank herstellen kann, wenn Windows Docker zum Ausführen von PHP-Containern und MySQL-Containern verwendet wird

藏色散人
藏色散人nach vorne
2021-03-19 17:06:102981Durchsuche

Problem

Lösen Sie das Problem, dass Laravel keine Verbindung zur Datenbank herstellen kann, wenn Windows Docker zum Ausführen von PHP-Containern und MySQL-Containern verwendet wird

Laravel-Projekt Bei der Verwendung von Windows Docker zum Ausführen des PHP-Containers und des MySQL-Containers wurde festgestellt, dass die Datenbank beim Ausführen von PHP Artisan Migrate in Windows Git Bash nicht gefunden werden konnte.

Fehlermeldung:

   Illuminate\Database\QueryException  : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: 未知  (SQL: select * from ***)

  at E:\project\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   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: 知 ")
      E:\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:31

  2   PDOException::("PDO::__construct(): php_network_getaddresses: getaddrinfo failed: 知 ")
      E:\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:27

  Please use the argument -v to see more details.

Ursache

Beim Ausführen von PHP Artisan Migrate unter Windows kann die MySQL im Container nicht verbunden werden

Lösung

Schreiben Sie einen Shell-Befehl um sulate den PHP-Artisan-Befehl , und führen Sie php artisan nach dem Container wie folgt aus:

phpartisan-Dateiinhalt

#!/usr/bin/env sh

# 进入容器 执行相应php artisan命令

docker exec -i 容器名称 sh -c "cd /项目的容器路径 && php artisan $*"
Ausführen

dann

Empfohlen:

Die neuesten fünf Laravel-Video-Tutorials

php artisan * 命令 换成 phpartisan *

Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, dass Laravel keine Verbindung zur Datenbank herstellen kann, wenn Windows Docker zum Ausführen von PHP-Containern und MySQL-Containern verwendet wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen