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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください