MySQL 워크 벤치를 MySQL 컨테이너와 연결


9

Dockerhub 에서 MySQL 컨테이너를 가져 와서 다음 과 같이 내 Macbook Pro 에서 실행 중입니다.

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
12cd3deaa3f0        mysql:latest        "/entrypoint.sh mysql"   47 hours ago        Up 10 minutes       3306/tcp            mysqldb

그런 다음 MySQL 워크 벤치를 다운로드하여 MySQL 컨테이너와 연결하려고 시도했지만 작동하지 않습니다. 연결 에러가 표시됩니다.

Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306:
Can't connect to MySQL server on '192.168.99.102' (60)

도커 머신의 IP는

docker-machine ip default
192.168.99.100

위에서 볼 수 있듯이 MySQL의 포트는 3306입니다.

MySQL 포트를 내보내려면 다음 문을 사용해 보았습니다.

docker run -d -P mysql:latest mysqldb

전혀 작동하지 않습니다. 내가 무엇을 잘못하고 있지?

답변:


9

-p 3306:3306매개 변수 를 설정하지 않고 컨테이너를 실행 한 것처럼 보입니다 . 또한 MySQL Workbench에서 호스트 이름의 IP 주소를 잘못 입력 한 것 같습니다. 다음 지침에 따라 처음부터 시작하는 것이 좋습니다.

  1. mysql 서버를 실행하십시오. (암호 admin를 원하는 것으로 변경하십시오 )

docker run -e MYSQL_ROOT_PASSWORD=admin --name mysql -d -p=3306:3306 mysql

  1. 다음을 실행하여 기본 docker 가상 머신의 IP 주소를 얻습니다.

docker-machine ip default

  1. 이전 명령의 결과로 얻게 될 IP 주소를 복사하십시오. (귀하의 경우 192.168.99.100이어야합니다)
  2. MySQL Workbench를 열고 새로운 연결을 만듭니다. "호스트 이름"필드에 복사 한 IP 주소를 붙여 넣습니다.

이제 모두 설정되었습니다.


1

이 매개 변수 -P는 컨테이너의 내 보낸 포트를 호스트의 사용 가능한 포트에 자동으로 바인딩합니다 .

다음 명령은 컨테이너 포트 3306을 호스트의 포트 3306에 바인딩해야합니다. 참조 : 포트 공개 또는 노출

docker run -d -p 3306:3306 mysql:latest mysqldb

문을 입력하고 docker run -d -p 3306:3306 mysql:5.7.9 dbmysql출력 d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43으로 mysql 워크 벤치를 사용하여 mysql 컨테이너에 액세스 할 수 없습니다. 나는 고정 표시기의 PS를 입력하면 그것은 나를 보여줍니다d6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
zero_coding
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.