> 데이터 베이스 > MySQL 튜토리얼 > Docker Compose에서 MySQL 연결 준비 상태를 확인하는 방법은 무엇입니까?

Docker Compose에서 MySQL 연결 준비 상태를 확인하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-14 11:33:17
원래의
474명이 탐색했습니다.

How to Ensure MySQL Connection Readiness in Docker Compose?

Docker-compose: MySQL 연결 준비 확인

Docker Compose에서는 애플리케이션 컨테이너를 시작하기 전에 데이터베이스 연결의 가용성을 보장할 수 있습니다. 오케스트레이션의 중요한 단계입니다. 이를 달성하기 위해 healthcheck 및 dependency_on 옵션이 편리한 솔루션을 제공합니다.

그러나 MySQL에 대한 효과적인 상태 확인을 구성하는 것은 어려울 수 있습니다. 쿼리에 언급된 접근 방식을 살펴보고 제한 사항을 평가해 보겠습니다.

  • MySQL 데이터 디렉터리의 존재 확인: 이는 데이터베이스 파일의 존재를 확인하지만, MySQL이 실행 중이고 연결을 수락한다는 보장은 없습니다.
  • MySQL 버전 가져오기: 이 접근 방식은 다음이 있는지 확인합니다. MySQL은 여전히 ​​연결 준비 상태를 표시하지 않습니다.
  • 관리자에게 핑: 이 작업은 컨테이너를 정상으로 표시하지만 데이터베이스가 완전히 작동하고 클라이언트 요청을 수락하는지 확인하지는 않습니다.

해결책은 다른 상태 확인 명령에 있습니다.

test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
로그인 후 복사

이 명령은 로컬 호스트에서 MySQL 서버의 가용성을 확인하고 연결 준비 상태를 나타내는 신뢰할 수 있는 지표 역할을 합니다. 이 상태 확인을 사용하면 MySQL이 완전히 초기화되고 네트워크 연결을 통해 액세스할 수 있는 경우에만 애플리케이션 컨테이너가 시작되도록 할 수 있습니다.

Docker Compose 파일에서 다음과 같이 이 상태 확인을 통합할 수 있습니다.

services:
    api:
        ...
        depends_on:
          db:
            condition: service_healthy
    db:
        ...
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
            timeout: 20s
            retries: 10
로그인 후 복사

이 구성을 사용하면 api 컨테이너는 시작하기 전에 db 컨테이너의 상태 확인이 성공할 때까지 기다려 MySQL이 연결을 수락할 준비가 되었는지 확인하고 부팅 전 마이그레이션의 위험을 최소화합니다. 또는 애플리케이션 오류.

위 내용은 Docker Compose에서 MySQL 연결 준비 상태를 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿