mysql - Docker Compose:无法连接到我的 MySQL 容器
问题描述
当我尝试从另一个容器连接到我的 MySQL 容器时出现以下错误:
$ mysql -h127.0.0.1 -uroot
ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
我可以看到我的容器正在端口 3306 上运行:
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a341fa5075c2 5961245d3135 "httpd-foreground" 3 minutes ago Up 3 minutes 127.0.0.1:8080->80/tcp sfcoding_cwj_1
e7683d546ad1 4da164162573 "docker-entrypoint.s…" 28 minutes ago Up 3 minutes 127.0.0.1:3306->3306/tcp sfcoding_mysql_1
这是我的docker-compose.yml
:
---
version: '3.8'
services:
cwj:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/usr/src/app:cached
ports:
- "127.0.0.1:8080:80"
mysql:
image: mariadb:10.5.8
volumes:
- db_data:/var/lib/mariadb
ports:
- "127.0.0.1:3306:3306"
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
volumes:
db_data: {}
关于为什么它无法连接的任何想法?
解决方案
原来我需要让我的主机匹配我的服务名称,即mysql
.
mysql -h127.0.0.1 -uroot # does not work
mysql -hmysql -uroot # works
推荐阅读
- excel - 使用 vba 将带有当前 excel 工作表的 Post 请求作为多部分表单数据发送
- android - Android分页库第一次加载非常慢,并且在应用过滤器时也是如此
- python - 找到极值点并在检测到极值点时画一条线
- c - 如何读取数据和写入数据 C 编程
- python - Python 多输入 - 多输出神经网络归一化 - 逆结果
- java - 统一使用实现 AndroidJavaClass
- laravel - Laravel 6 验证错误?
- c# - Azure 认知图像分析无法处理图像上的 alpha 通道?
- excel - 保存PDF时VBA Excel不包括一张纸
- api - curl GET json请求超过100个项目