Zakku-Spot.com

気になる情報のリサーチブログ - Reserch blog of information you care about -

[基礎知識]/docker-entrypoint-initdb.d ディレクトリへのスクリプトやSQLの自動実行が、正常に行われない場合の対処方法

8月 18, 2023
0 0
Read Time:21 Second

 /docker-entrypoint-initdb.d ディレクトリへのスクリプトやSQLの自動実行は、MySQLコンテナが初めて起動されるときにのみ行われます。これはMySQLのデータディレクトリが初期化されていない状態、つまりデータベースがまだ作成されていないときに適用されます。

 もし、以前にコンテナを起動してデータベースを初期化した後で、再び同じコンテナを起動しても、このディレクトリ内のスクリプトやSQLは再実行されません。

1.以前にコンテナ起動したことがある場合(で、正常にスクリプトやSQLが正しく実行されない時)

(1)コンテナとボリュームを停止・削除

docker-compose down -v

※このコマンドは、docker-composeで定義されたコンテナを停止・削除するとともに、-v オプションを使って関連するボリュームも削除します。この操作により、MySQLデータベースが完全にリセットされます。

(2)再びコンテナを起動

docker-compose up

※このコマンドで、MySQLコンテナが再度起動され、データベースが初期化される際に、/docker-entrypoint-initdb.d ディレクトリ内のスクリプトやSQLが実行されるはずです。

2.今回がコンテナ起動初回である場合(で、正常にスクリプトやSQLが正しく実行されない時)

 また、上記を行っても、やはりスクリプトやSQLの自動実行が、正常に行われない場合は、(スクリプトやSQLの)シェル内容に問題がある可能性があります。この場合は以下の別記事をご覧下さい。

・別記事「[基礎知識]「docker-entrypoint-initdb.d」について

・別記事「[基礎知識]Dockerコンテナ内で、shファイル実行時に、改行コードに関するエラーが表示された場合の対処方法

・別記事「[基礎知識]SQL実行シェルのパスワード設定について

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

コメントを残す