Heim > PHP-Framework > Laravel > Hauptteil

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

藏色散人
Freigeben: 2021-03-22 08:58:07
nach vorne
3043 Leute haben es durchsucht

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.
Nach dem Login kopieren

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 $*"
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage