Visual Studio 开发容器无法连接到 mysql 服务

问题描述 投票:0回答:1

在 Visual Studio Code (VSC) 中使用开发容器时,我无法连接到 MySQL 数据库,甚至无法从容器内部连接。但是,当我使用

docker-compose up -d mysql
手动启动服务时,我可以从容器内连接到数据库。

我正在使用 Docker Hub 注册表中的 Bitnami MySQL。

这就是我的内容

.devcontainer.json
:

{
    "name": "Devcontainer",
    "dockerComposeFile": "docker-compose.yml",
    "service": "devcontainer",
    "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}"
}

保持尽可能基本。

docker-compose.yml
文件的内容:

version: '3.8'
services:
  devcontainer:
    image: mcr.microsoft.com/devcontainers/base:ubuntu
    volumes:
      - ../..:/workspaces:cached

    command: sleep infinity

  mysql:
    image: docker.io/bitnami/mysql:8.0
    ports:
      - 3306:3306
    expose:
      - 3306
    volumes:
      - 'mysql_data:/bitnami/mysql/data'
    environment:
      - ALLOW_EMPTY_PASSWORD=no
      - MYSQL_ROOT_PASSWORD=deOCyZ4cnRa4bRNDAFak8
      - MYSQL_USER=user
      - MYSQL_PASSWORD=deOCyZ4cnRa4bRNDAFak8
      - MYSQL_DATABASE=name
    healthcheck:
      test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh']
      interval: 15s
      timeout: 5s
      retries: 6

volumes:
  mysql_data:
    driver: local

因此,当我在 VSC 中执行

Rebuild without cache and reopen in container
时,它会启动 docker 容器。之后,我使用
docker exec -it <hash> bash
进入容器并尝试登录服务器:

$ mysql -u user -p 
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/bitnami/mysql/tmp/mysql.sock' (2)

当我关闭远程连接并确保容器不再运行时,我使用

docker-compose up -d db
启动容器。

当它运行时,我以相同的方式在容器内启动 bash,然后我可以连接到服务器:

$ mysql -u user -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.31 Source distribution

我 100% 确定我通过复制/粘贴提供了正确的密码。

root 用户也存在同样的连接问题。我也尝试过使用

ALLOW_EMPTY_PASSWORD=true
但结果相同。

我尝试使用 Bitnami 提供的 MariaDB 版本,但也有同样的问题。我没有尝试过原始的 MySQL 镜像,但我以前从未遇到过这个问题。

当我启动开发容器时,没有其他 docker 容器正在运行。

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
$ 

知道发生了什么以及如何解决它吗?我是不是做错了什么?

更新:看起来来自 Docker Hub 的原始 MySQL 镜像工作正常。

mysql bitnami vscode-devcontainer
1个回答
0
投票

我也有同样的问题。你有什么解决办法吗?

© www.soinside.com 2019 - 2024. All rights reserved.