首页 > 解决方案 > 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: {}

关于为什么它无法连接的任何想法?

标签: mysqldocker

解决方案


原来我需要让我的主机匹配我的服务名称,即mysql.

mysql -h127.0.0.1 -uroot # does not work
mysql -hmysql -uroot # works

推荐阅读