DockerのMySQLからダンプを取得する

ある日、Docker上で運用していたMySQLサーバーから、別のMySQLサーバーへデータ移動をする必要があったため、ダンプを取ることにしました。

その際に実施した作業内容を共有したいと思います。

docker-composeの設定

Docker上のMySQLサーバーは、下記のような設定で作成しました。(一部省略)

docker-compose.yml
version: '3'
 services:
   # MySQL
   mysql:
     image: mysql:5.7
     container_name: dmysql
     environment:
       MYSQL_DATABASE: my_db
       MYSQL_ROOT_PASSWORD: rootpass
       MYSQL_USER: db_user
       MYSQL_PASSWORD: abcde
       TZ: 'Asia/Tokyo'
     command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
     volumes:
     - /opt/…
     restart: always
     ports:
     - 3310:3306

ダンプを取得する

ダンプ取得する際は、下記形式でコマンドを実行します。

コマンド
mysqldump -u [ユーザー] -p -h localhost -P [ポート番号] --protocol=tcp [バックアップするDB名] > backup.sql

従って、今回は下記コマンドをホスト側で実施します。

コマンド
mysqldump -u db_user -p -h localhost -P 3310 --protocol=tcp my_db > backup.sql

これでbackup.sqlが生成されれば成功です。

インポートする

インポートする際は、下記形式でコマンドを実行します。

コマンド
mysql -u root -p [インポート先DB名] < backup.sql

上記形式に当てはめたものが下記になります。

コマンド
mysql -u root -p my_new_db < backup.sql

問題なくインポートが完了したら、データを確認して作業完了です!。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください