🎃

DockerでDBダンプファイルを挿入する方法(DBコンテナに反映)

に公開

方法は2つある!

DBコンテナへDBのダンプファイルを反映させる方法①

1. DBコンテナに入る

$ docker exec -it コンテナ名 /bin/bash

2. ダンプファイルをMySQLに流し込む
このコマンドでdockerにSQLを読み込む。(mysql~~からがコマンド)

root@××××:/var/www/html# mysql -u root(←dbコンテナユーザー名) -p database(使用するdatabase名) < /docker-entrypoint-initdb.d/SQLのファイル名

3. mysqlに繋いで確かめる
・mysql -u root -p (rootの部分は設定したuser名があればそれを記述する)
・mysql> SHOW DATABASES;
・mysql> use database; (使用するdatabaseを選択)
・mysql> show tables;  (選択したdatabaseのテーブル)

沢山テーブルが表示されれば⭕️
これでダンプが反映されていないときは②の方法

DBコンテナへDBのダンプファイルを反映させる方法②

上記なんかうまくいかないときは直接DBコンテナを操作して反映させる。

(SQLダンプファイルは、mysqlディレクトリ以下に配置している。)

SQLダンプファイルをdbコンテナ内にコピーする
*dbコンテナIDはdocker psコマンドで調べる。

$ docker cp ./mysql/ dbコンテナID:/tmp/

dbコンテナに入る

$ docker exec -it コンテナ名 /bin/bash  

sqlに入る

mysql -u root -p

SQLファイルを反映させたいdatabase名を選択する

use database名;

dbコンテナの指定databaseにSQLダンプファイルを反映させる

source SQLファイルパス

確認

show tables;

Discussion