php - 使用 Laravel 在 Docker Mysql 上连接被拒绝

标签 php mysql laravel docker

我无法从我的 php/laravel 容器连接到 mysql 数据库。我的连接一直被拒绝。不过,连接在 Mysql Workbench 上工作得很好。

我的 docker-compose 看起来像这样:

services:
  nginx:
    image: nginx:stable-alpine
    container_name: nginx
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
      - mysql
    networks:
      - laravel

  mysql:
    image: mysql:5.7.22
    container_name: mysql
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: project_db
      MYSQL_USER: dev
      MYSQL_PASSWORD: dev
      MYSQL_ROOT_PASSWORD: dev
      SERVICE_TAGS: dev
    networks:
      - laravel
  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: php_node
    volumes:
      - ./src:/var/www
    ports:
      - "9000:9000"
    networks:
      - laravel

我的 .env 的相关部分如下所示:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=project_db
DB_USERNAME=root
DB_PASSWORD=dev

我尝试删除所有内容并重新构建图像,但无济于事。

你们能发现我的错误吗?

提前致谢

最佳答案

在 Docker for windows 上,您可以使用 host.docker.internal 来访问主机 IP。

我在评论中回答了这个问题,但我想我会复制它作为一个正确的答案,以帮助将来发现这个问题的人,并让他们阅读所有评论

关于php - 使用 Laravel 在 Docker Mysql 上连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58083291/

相关文章:

php - PHP session 是否足够安全以自行登录?

php - 尝试使用 Doctrine2 访问 PostgreSQL 时出现错误 : undefined table,

python - 在 mysql 中存储 python timedelta 值的最佳方法是什么?

php - 插入同一张表避免重复

php - 加载模型后的 Laravel 调用方法

javascript - VueJS 和 Laravel,当用户离开屏幕时执行发布请求

php - 如何获取远程服务器上的mysql主机名

php - cURL 作为代理,处理 HTTPS/CONNECT 方法

PHP:调用字符串上的成员函数 contains()

MySQL 错误未知变量 LOG_OUTPUT