Laravel 项目 使用 Windows docker 运行php 容器 及 mysql 容器时,连不起数据库。 
                                                    
                        
                    
                    
  
                    
                    问题
Laravel 项目 使用 Windows docker 运行php 容器 及 mysql 容器时, 在windows git bash 执行 php artisan migrate 发现找不到数据库。
补充
由于本项目需要做负载均衡所以DB_HOST写的是 DB_HOST=’mysql’ 容器, 如果不走容器负载均衡,本地修改成DB_HOST=127.0.0.1 即可, 不用重新封装命令。
报错信息:
   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.
原因
windows 下执行 php artisan migrate 时连不到容器里的mysql
解决
重新写一个shell 命令封装一下 php artisan 命令, 进行容器后执行php artisan 如下:
phpartisan 文件内容
#!/usr/bin/env sh
# 进入容器 执行相应php artisan命令
docker exec -i 容器名称 sh -c "cd /项目的容器路径 && php artisan $*"
执行 php artisan * 命令 换成 phpartisan *即可
本作品采用《CC 协议》,转载必须注明作者和本文链接
          
                    
                    
            
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: