質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

3842閲覧

docker-compose起動時にmysqlに初期データを入れたいです。

pomo

総合スコア3

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/07/05 11:14

docker-compose起動時にmysqlに初期データを入れたいのですが、うまくいきません。
後述する設定をしてdocker-compose up をしなおしたりしているのですが、作成されず。。。
ご教授をいただきたいです????‍♂️

ファイル構造は下記のようになっています。

docker-compose.ymlは下記です。

yml

1version: '3' 2services: 3 mysql: 4 image: mysql:5.7 5 env_file: ./mysql/mysql.env 6 environment: 7 - TZ=Asia/Tokyo 8 ports: 9 - "3306:3306" 10 volumes: 11 - ./mysql/conf:/etc/mysql/conf.d/:ro 12 - mysqldata:/var/lib/mysql 13 - ./mysql/initdb:/docker-entrypoint-initdb.d 14

./mysql/mysql.envファイルは下記のように書いています。

env

1MYSQL_ROOT_PASSWORD=test 2MYSQL_USER=test 3MYSQL_PASSWORD=testtest 4MYSQL_DATABASE=test_db

./mysql/initdb/users.sqlに下記のようなファイルを記述してあります

sql

1CREATE DATABASE IF NOT EXISTS test_db; 2USE test_db; 3 4CREATE TABLE IF NOT EXISTS `users` 5( 6 `id` INT(20) AUTO_INCREMENT, 7 `name` VARCHAR(50) NOT NULL, 8 `created_at` Datetime DEFAULT NULL, 9 `updated_at` Datetime DEFAULT NULL, 10 PRIMARY KEY (`id`) 11); 12 13INSERT INTO users (name) VALUES ("Jhon");

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

上記のSQLが正しい前提で説明します。

mysqldataボリュームを一度削除してから、docker-compose up -dを試してみてください。

DBが初期化済みだった場合、/docker-entrypoint-initdb.d配下のSQLおよびスクリプトは読み込まれない作りになっています。なので上記のようにDBのデータ領域を一度削除することで再初期化が実行され、SQLが読み込まれるようになります。

投稿2021/07/06 00:45

comefigo

総合スコア1051

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pomo

2021/07/12 01:13

返信が遅くなり申し訳ございません。 こちらvolumeを削除したらできました!! また仕組みの解説もしてくださり本当にありがとうございました!
comefigo

2021/07/12 04:21

無事に解決されてよかったです。 ボリューム問題はあるあるなので、ほかに困った方がいたら同じように助けてあげてくださいませ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問