ホームページ > データベース > mysql チュートリアル > Docker コンテナ内のスキーマを使用して MySQL データベースを初期化する方法

Docker コンテナ内のスキーマを使用して MySQL データベースを初期化する方法

Linda Hamilton
リリース: 2024-12-25 12:34:09
オリジナル
187 人が閲覧しました

How to Initialize a MySQL Database with Schema Inside a Docker Container?

Docker コンテナ内のスキーマを使用した MySQL データベースの初期化

Docker コンテナ内のスキーマを使用した MySQL データベースの初期化は、困難な場合があります。この問題に対処する解決策は次のとおりです:

1. MySQL スキーマのダンプ

次のコマンドを使用して、MySQL スキーマをファイルにダンプします。

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
ログイン後にコピー

2. Dockerfile へのスキーマ ファイルの追加

Dockerfile で、ADD コマンドを使用してスキーマ ファイルを /docker-entrypoint-initdb.d ディレクトリに追加します。コンテナ内の docker-entrypoint.sh スクリプトは、このディレクトリ内のすべての .sql ファイルをデータベースに対して実行します。

サンプル Dockerfile:

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
ログイン後にコピー

3. Docker コンテナのビルドと実行

Dockerfile を変更したら、コンテナをビルドして実行します。

docker-compose build
docker-compose up
ログイン後にコピー

4.追加事項

  • MySQL ユーザーがデータベースとテーブルを作成するための十分な権限を持っていることを確認してください。
  • 必要に応じて、MySQL ホスト、ユーザー名、パスワード、およびスキーマ名を調整してください。 .
  • docker-entrypoint.sh スクリプトがコンテナ内で root ユーザーによって実行可能であることを確認します。スキーマの初期化の実行を担当します。

これらの手順に従うことで、Docker コンテナ内のスキーマを使用して MySQL データベースを正常に初期化し、CMD が適切に実行されない問題を解決できます。

以上がDocker コンテナ内のスキーマを使用して MySQL データベースを初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート