Docker

通過本地 mysql 客戶端(即工作台)連接到在 docker 容器中執行的數據庫

  • August 20, 2021

我有一個在 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; - 正在執行的容器的名稱沒有成功?

這是因為您的 MySQL 客戶端正在強制 SSL 連接,更具體地說是 TLS 1.2 或更高版本。

一個快速的解決方案是從你的 mysql 工作台關閉 SSL。

mysql工作台關閉SSL

這不會強制使用 SSL/TLS,您將能夠連接到數據庫

引用自:https://unix.stackexchange.com/questions/665504