无法将docker nginx服务器连接到本地mysql数据库

无法将docker nginx服务器连接到本地mysql数据库,mysql,laravel,docker,Mysql,Laravel,Docker,我正在尝试将docker nginx服务器连接到本地MySQL数据库。但我收到了以下错误: SQLSTATE[HY000][2002]连接被拒绝SQL:select*from information_schema.tables,其中table_schema=homestad,table_name=migrations,table_type='BASE table' 以下是我的docker composer代码: version: "3" networks: laravel:

我正在尝试将docker nginx服务器连接到本地MySQL数据库。但我收到了以下错误:

SQLSTATE[HY000][2002]连接被拒绝SQL:select*from information_schema.tables,其中table_schema=homestad,table_name=migrations,table_type='BASE table'

以下是我的docker composer代码:

version: "3"
networks:
 laravel:
services:
site:
  build:
   context: .
   dockerfile: nginx.dockerfile
  container_name: nginx
  ports:
   - 8080:80
  volumes:
   - ./src:/var/www/html:delegated
  depends_on:
   - php
   - redis
 networks:
   - laravel

php:
 build:
  context: .
  dockerfile: php.dockerfile
container_name: php
volumes:
  - ./src:/var/www/html:delegated
networks:
  - laravel

redis:
 image: redis:alpine
 container_name: redis
 restart: unless-stopped
 ports:
  - 6379:6379
 networks:
  - laravel

composer:
 build:
  context: .
  dockerfile: composer.dockerfile
 container_name: composer
 volumes:
  - ./src:/var/www/html
 working_dir: /var/www/html
 depends_on:
   - php
 user: laravel
 entrypoint: ["composer", "--ignore-platform-reqs"]
 networks:
  - laravel

artisan:
 build:
  context: .
  dockerfile: php.dockerfile
 container_name: artisan
 volumes:
  - ./src:/var/www/html:delegated
 working_dir: /var/www/html
 user: laravel
 entrypoint: ["php", "/var/www/html/artisan"]
 networks:
  - laravel

我只是简单地加上这个就解决了这个问题

host.docker.internal

到我的数据库主机。下面是代码示例

DB_CONNECTION=pgsql
DB_HOST=host.docker.internal
DB_PORT=5432
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

我不是舒尔,它将以您需要的方式帮助您 您需要了解网关ip,才能连接到本地计算机

docker network inspect laravel | grep Gateway
然后把这个ip放到DB主机上


PS请注意,重新启动后,它将被更改。

您如何将一个连接到另一个?你能显示相关的nginx配置吗?@DavidMaze我已经编辑了这个问题。请看一看。您还应该提供您的php连接字符串提示:问题可能是“localhost”和“127.0.0.1”之间的差异。如何将连接字符串添加到php中。@symcbean我是docker的新手