로컬 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

셸을 통해 이 컨테이너에 로그인하고 쿼리를 제대로 실행할 수 있습니다.

docker exec -it db bash

내 로컬 컴퓨터(mysql Workbench 사용)에서 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.1db

답변1

이는 MySQL 클라이언트가 SSL 연결, 특히 TLS 1.2 이상을 강제하기 때문입니다.

이에 대한 빠른 해결책은 mysql 워크벤치에서 SSL을 끄는 것입니다.

mysql Workbench가 SSL을 끕니다.

SSL/TLS를 강제로 사용하지 않으며 데이터베이스에 연결할 수 있습니다.

관련 정보