gpt4 book ai didi

mysql - 无法连接到 MySQL docker 容器

转载 作者:行者123 更新时间:2023-11-29 06:02:10 24 4
gpt4 key购买 nike

我的 MySQL 容器有问题,我无法连接到容器。

这是我的docker-compose.yml

apache:
build: ./
ports:
- 1814:80
volumes:
- ./code:/app
links:
- db
environment:
- APACHE_SERVER_NAME=local.dev
- PHP_SHORT_OPEN_TAG=On
- PHP_ERROR_REPORTING=E_ALL
- PHP_DISPLAY_ERRORS=On
- PHP_HTML_ERRORS=On

db:
image: mysql:5.6
ports:
- "3333:3306"
volumes:
- /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: app

我使用 docker-compose up -d --build 运行。

之后,我使用docker ps查看正在运行的容器

https://i.imgsafe.org/3caf28c5f0.png

然后我使用 docker exec -it mddev_apache_1/bin/bashmddev_apache_1 容器中运行交互式 shell。

但是当我尝试连接到 MySQL 时,它被拒绝了。

https://i.imgsafe.org/3ccfde1f73.png

知道为什么我无法连接到 MySQL 容器吗?

谢谢。

============================================= ===

更新

我将我的 docker-compose.yml 更改为:

version: '2'

services:
apache:
build: ./
container_name: web-server
ports:
- 1814:80
volumes:
- ./code:/app
links:
- db
environment:
- APACHE_SERVER_NAME=local.dev
- PHP_SHORT_OPEN_TAG=On
- PHP_ERROR_REPORTING=E_ALL
- PHP_DISPLAY_ERRORS=On
- PHP_HTML_ERRORS=On
networks:
report:
aliases:
- web-server
db:
image: mysql:5.6
container_name: database
ports:
- "3333:3306"
volumes:
- /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: app
networks:
report:
aliases:
- database

networks:
report:
driver: bridge

但我仍然无法连接到我的 MySQL 容器。

http://i.imgsafe.org/4eb89f3857.png

我尝试检查我的网络和我的容器。

mddev_report 网络检查:http://i.imgsafe.org/4eae17a27f.png

web-server 容器检查:http://i.imgsafe.org/4ec74e5d52.png

数据库容器检查:http://i.imgsafe.org/4ecb129d2d.png

最佳答案

你的 mysql 容器将端口 3306 暴露给它的网络,同时它将它的端口 3306 映射到主机的 3333 端口。
当您使用 ports 属性时,您将端口映射到本地主机,而不是网络上的其他容器。

web-server 容器中,您应该能够通过 mysql -uroot -padmin -h database -P 3306 从您的主机连接到 mysql 服务器你应该可以使用 mysql -uroot -padmin -h localhost -P 3333

关于mysql - 无法连接到 MySQL docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44126750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com