DockerのMySQLコンテナにダンプファイルを流し込む
Docker上で動いているMySQLのコンテナにDumpfileを流し込みデータをコピーする方法です。
DockerにMySQLのデータを入れたい
移行元DBからSQLダンプファイルをエクスポートする
mysqldumpする
移行(コピー)元のMySQLに接続できるサーバーなどでmysqldumpコマンドを実行しダンプを生成します。
1mysqldump -u root -h DB_HOSTNAME.com -p database_name > dumpfile.sql
2rootユーザのパスワードを入力
ローカルに転送
1scp -i ~/.ssh/id_rsa [email protected]:~/dumpfile.sql dumpfile.sql
2rootユーザのパスワードを入力
ダンプしたデータをMySQLコンテナに入れる
コンテナにコピー&インポート
Dockerコンテナの任意の場所(以下の例では/home)にダンプファイルを転送します。
1docker cp dumpfile.sql mysql_containername:/home
コンテナにログインし、ダンプファイルを流し込みます。
1docker exec -it mysql_container sh
2
3# コンテナの/homeで
4mysql -u root -p database_name < dumpfile.sql
ローカルから直接ダンプファイルをインポート
または、コンテナにコピーして流す代わりに以下のやりかたでもできます。
1docker exec -t mysql_container mysql -u root -p database_name < dumpfile.sql
ただし、筆者の実践上はデータベースのレコードが膨大だと処理が停止することがありました。