> 데이터 베이스 > MySQL 튜토리얼 > Docker 컨테이너 내에서 MySQL 데이터베이스 스키마를 성공적으로 초기화하는 방법은 무엇입니까?

Docker 컨테이너 내에서 MySQL 데이터베이스 스키마를 성공적으로 초기화하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-04 06:41:10
원래의
1026명이 탐색했습니다.

How to Successfully Initialize a MySQL Database Schema within a Docker Container?

Docker 컨테이너의 스키마를 사용하여 MySQL 데이터베이스를 초기화하는 방법

스키마를 사용하여 데이터베이스를 초기화하는 것은 특히 Docker 컨테이너를 사용할 때 복잡한 프로세스가 될 수 있습니다. 이 문서에서는 Docker 컨테이너를 사용하여 스키마로 MySQL 데이터베이스를 초기화할 때 발생하는 일반적인 문제를 다루고, 스키마를 파일에 덤프하고 /docker-entrypoint-initdb.d 디렉터리에 추가하는 방법을 기반으로 솔루션을 제공합니다.

문제 설명

MySQL 데이터베이스로 Docker 컨테이너를 생성하고 다음을 사용하여 스키마로 초기화하려고 할 때 Dockerfile:

FROM mysql
MAINTAINER (me) <email>

# Copy the database schema to the /data directory
COPY files/epcis_schema.sql /data/epcis_schema.sql

# Change the working directory
WORKDIR data

CMD mysql -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < epcis_schema.sql
로그인 후 복사

컨테이너가 시작되지 않고 CMD 명령이 성공적으로 실행되지 않습니다.

해결책

스키마를 사용하여 데이터베이스를 초기화하려면 다음 단계를 따르세요. :

  1. MySQL 스키마를 파일로 덤프 사용:
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
로그인 후 복사
  1. Dockerfile의 /docker-entrypoint-initdb.d 디렉터리에 스키마 파일을 추가합니다.
FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306
로그인 후 복사
  1. Docker MySQL 인스턴스 시작 사용:
docker-compose build
docker-compose up
로그인 후 복사

/docker-entrypoint-initdb.d 디렉터리를 사용하면 컨테이너 초기화 시 SQL 파일이 MySQL 데이터베이스에 대해 자동으로 실행되어 데이터베이스가 원하는 스키마.

위 내용은 Docker 컨테이너 내에서 MySQL 데이터베이스 스키마를 성공적으로 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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