Maison >cadre php >Laravel >Résoudre le problème selon lequel Laravel ne peut pas se connecter à la base de données lors de l'utilisation du docker Windows pour exécuter des conteneurs php et mysql

Résoudre le problème selon lequel Laravel ne peut pas se connecter à la base de données lors de l'utilisation du docker Windows pour exécuter des conteneurs php et mysql

藏色散人
藏色散人avant
2021-03-19 17:06:103099parcourir

La colonne du didacticiel suivante de laravel vous présentera la méthode pour résoudre le problème selon lequel Laravel ne peut pas se connecter à la base de données lors de l'utilisation du docker Windows pour exécuter le conteneur php et Conteneur MySQL. J'espère que cela aidera ceux qui en ont besoin.

Résoudre le problème selon lequel Laravel ne peut pas se connecter à la base de données lors de l'utilisation du docker Windows pour exécuter des conteneurs php et mysql

Problème

Lorsque le projet Laravel utilise le docker Windows pour exécuter le conteneur php et le conteneur mysql, exécutez php dans Windows git bash artisan migrate a constaté que la base de données était introuvable.

Message d'erreur :

   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.

Cause

Lors de l'exécution de php artisan migrate sous Windows, le mysql dans le conteneur ne peut pas être connecté

Solution

Réécrivez une commande shell pour encapsuler la commande php artisan et exécutez php artisan après avoir créé le conteneur comme suit :

contenu du fichier phpartisan

#!/usr/bin/env sh

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

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

Exécuterphp artisan * et remplacez la commande par phpartisan *

Recommandé : Les cinq derniers didacticiels vidéo Laravel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer