>데이터 베이스 >MySQL 튜토리얼 >호스트 머신에서 Dockerized MySQL 인스턴스에 어떻게 연결합니까?

호스트 머신에서 Dockerized MySQL 인스턴스에 어떻게 연결합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-29 08:39:11381검색

How to Connect to a Dockerized MySQL Instance from the Host Machine?

호스트에서 Docker 컨테이너의 MySQL에 연결

문제 설명:

경우 호스트 시스템의 Docker 컨테이너에서 실행 중인 MySQL 데이터베이스에 연결하려고 하면 "연결할 수 없습니다."라는 오류 메시지가 나타납니다. 소켓 '/var/run/mysqld/mysqld.sock'"을 통해 로컬 MySQL 서버에 연결합니다.

Dockerfile:

다음 Dockerfile은 MySQL 컨테이너를 생성하는 데 사용됩니다. :

FROM ubuntu:14.04.3
RUN apt-get update && apt-get install -y mysql-server
RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf
EXPOSE 3306
CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log

실패 시도:

컨테이너 내에서 MySQL 인스턴스를 성공적으로 시작했음에도 불구하고 mysql -P 12345 -uroot를 사용하여 호스트에서 인스턴스에 연결하면 소켓 오류가 발생합니다.

해결책 :

호스트 시스템에서 Docker 컨테이너에서 실행 중인 MySQL 데이터베이스에 연결하려면 다음 단계가 필요합니다.

  1. 호스트 주소를 'localhost'로 지정합니다.
  2. Docker MySQL 인스턴스가 수신 대기하는 포트를 지정합니다(기본적으로 3306).
  3. Docker MySQL 인스턴스는 Unix를 통해 액세스할 수 없으므로 프로토콜을 'tcp'로 설정합니다. 소켓.

호스트 연결 명령:

mysql -h localhost -P 3306 --protocol=tcp -u root

포트 변경:

다른 경우 포트는 Docker 컨테이너(예: 12345)에서 MySQL 인스턴스를 노출하는 데 사용됩니다. 연결 명령에도 지정해야 합니다:

mysql -h localhost -P 12345 --protocol=tcp -u root

위 내용은 호스트 머신에서 Dockerized MySQL 인스턴스에 어떻게 연결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.