ホームページ >データベース >mysql チュートリアル >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 コマンドが正常に実行されません。
スキーマを使用してデータベースを初期化するには、次の手順に従います。 :
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
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
docker-compose build docker-compose up
/docker-entrypoint-initdb.d ディレクトリを使用すると、コンテナの初期化時に SQL ファイルが MySQL データベースに対して自動的に実行され、データベースが確実に初期化されます。必要なスキーマ。
以上がDocker コンテナ内で MySQL データベース スキーマを正常に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。