【问题标题】:Can't use PHPUnit using Docker - SQLSTATE[HY000] [2002] (PhpStorm 2019.2)无法使用 Docker 使用 PHPUnit - SQLSTATE[HY000] [2002] (PhpStorm 2019.2)
【发布时间】:2020-02-22 18:15:42
【问题描述】:

MySQL 连接在通过机器访问应用程序时有效(API 端点能够使用 MySQL),但在从 PHPUnit(本地)访问它时则无效。

我通过 TCP 套接字 tcp://localhost:2375 将 PhpStorm 连接到 Docker 这是docker ps 执行后得到的结果:0.0:8083->3306/tcp mysql

这是我设置 CLI 解释器的方法:

这是我设置 PHPUnit 的方法:

我仔细检查了我的.env

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=databasename
DB_USERNAME=databaseuser
DB_PASSWORD=123456

还仔细检查了我的docker.compose.yml

  mysql:
    image: mysql
    container_name: mysql
    working_dir: /application
    volumes:
      - .:/application
      - ./storage-db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=databasename
      - MYSQL_USER=databaseuser
      - MYSQL_PASSWORD=123456
    ports:
      - "8083:3306"

此外,我还阅读了this article 以及与此错误相关的每个 StackOverflow 问题。然而,在测试中尝试User::all() 后我仍然得到它

Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No address associated with hostname

这是我的项目结构的样子:

dockerProject
   /docker/
     /nginx/
        nginx.conf
     /php-fpm/
        Dockerfile
   /server/ (<--Laravel project)
   docker-compose.yml

我很沮丧,我还能做些什么来让它发挥作用?

更新 这是整个docker-compose.yml 文件:

version: "3.1"
services:

  mysql:
    image: mysql
    container_name: mysql
    working_dir: /application
    volumes:
      - .:/application
      - ./storage-db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=databasename
      - MYSQL_USER=databaseuser
      - MYSQL_PASSWORD=123456
    ports:
      - "8083:3306"

  webserver:
    image: nginx:alpine
    container_name: webserver
    working_dir: /application
    volumes:
     - .:/application
     - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
     - "8081:80"

  php-fpm:
    build: docker/php-fpm
    container_name: php-fpm
    working_dir: /application
    volumes:
      - ./server:/application
    #  - .:/application
      - ./docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

【问题讨论】:

标签: mysql windows docker phpunit phpstorm


【解决方案1】:

这对我有用。

  1. 使用docker network ls 获取网络名称
  2. 编辑 docker 容器设置:

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    相关资源
    最近更新 更多