2017-09-29 4 views
0

私はmysqlでドッキング・コンテナを開始しました。
実際に私は新しいユーザーと新しいテーブルを作成したいのですが、MySQL Workbenchでそれをやる必要があります。

これは私のドッキングウィンドウrunコマンドをイスト:
docker run -p 3306:3306 --name mysql-server -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

私の質問は次のとおりです。
は、どのように私は私のユーザーと自分のテーブルを作成します(容器のみの最初のスタートのために)SQLの起動スクリプトを追加することができますか?
どのステップを実行する必要がありますか?

ここで私を助けることができますか?
ありがとうございました!スタートアップスクリプトをmysqlドッカーのコンテナに追加するには?

答えて

1
あなたの起動スクリプトのあるディレクトリにマップするために、 MYSQL_USER経由 MYSQL_PASSWORDのenv VARSと使用量 /docker-entrypoint-initdb.dをユーザーを作成する必要があります

.sh.sqlを、.sql.gz

docker run -p 3306:3306 --name mysql-server \ 
-v ~/Development/web/myproject/docker/mysql:/var/lib/mysql \ 
-v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d \ 
-e MYSQL_ROOT_PASSWORD=root \ 
-e MYSQL_USER=youruser \ 
-e MYSQL_PASSWORD=youruserpassword \ 
-d mysql:latest 

説明から:https://hub.docker.com/_/mysql/

MYSQL_USER 、MYSQL_PASSWORD
これらの変数はオプションで、そのユーザーのパスワードを設定します。このユーザーには、MYSQL_DATABASE変数で指定されたデータベースのスーパーユーザー権限(上記参照)が付与されます。両方の変数は、ユーザーを作成するために必要です。コンテナを初めて起動する新鮮なインスタンス
を初期化

は、指定された名前を持つ新しいデータベースが作成され、提供された構成変数で初期化されます。さらに、拡張子が.sh,.sql、および.sql.gzのファイルが/docker-entrypoint-initdb.dにあります。ファイルはアルファベット順に実行されます。 mysqlサービスにはmounting a SQL dump into that directoryを簡単に設定し、custom imagesに投稿データを提供することができます。 SQLファイルは、デフォルトで変数MYSQL_DATABASEで指定されたデータベースにインポートされます。

+0

ありがとうございます。私が検索したものでした:) – m1well

+0

新しいユーザーを作成することによって何が違うのですか?スクリプトで作成するか、ドッカーの実行コマンドで作成しますか? – m1well

+1

@ m1wellここでユーザーを作成する方法を正確にチェックすることができます:https://github.com/docker-library/mysql/blob/0590e4efd2b31ec794383f084d419dea9bc752c4/5.7/docker-entrypoint.sh#L166-L174 – adam187

関連する問題