![](/img/trans.png)
[英]Mysql with docker: Can't connect to local MySQL server through socket
[英]Can't connect docker nginx server to local mysql database
我正在尝试将 docker nginx 服务器连接到本地 MySQL 数据库。但是我收到了这个错误:
SQLSTATE[HY000] [2002] 连接被拒绝(SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations and table_type = 'BASE TABLE')
这是我的 docker 作曲家代码:
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
我只是通过添加这个来解决这个问题
主机.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请注意,重启后它将被更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.