通过本地 mysql 客户端即工作台连接到在 docker 容器中运行的数据库

通过本地 mysql 客户端即工作台连接到在 docker 容器中运行的数据库

我有一个在 docker 容器中运行的 mysql 数据库

docker ps
6496a209cb30   mysql:5.7.22           "docker-entrypoint.s…"   34 minutes ago   Up 34 minutes   0.0.0.0:3317->3306/tcp, :::3317->3306/tcp    db

我可以通过 shell 登录到此容器并正常运行查询

docker exec -it db bash

为什么我无法通过本地计算机上的 mysql 客户端(使用 mysql 工作台)连接到同一个容器?

在此输入图像描述

这是我的docker-compose.yml配置;

 #MySQL Service
  db:
    image: mysql:5.7.22
    container_name: db
    restart: unless-stopped
    tty: true
    ports:
      - "3317:3306"
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_ROOT_PASSWORD: password
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - dbdata:/var/lib/mysql/
      - ./mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - app-network

对于该Hostname字段 - 我已经尝试过127.0.0.1& db;- 正在运行的容器的名称没有成功?

答案1

这是因为您的 MySQL 客户端强制使用 SSL 连接,更具体地说是 TLS 1.2 或更高版本。

对此的一个快速解决方案是从 mysql 工作台关闭 SSL。

mysql工作台关闭SSL

这不会强制使用 SSL/TLS,您将能够连接到数据库

相关内容