まちいろエンジニアブログ

南池袋のWebサービス開発会社、株式会社まちいろのエンジニアブログです。

MySQLデータベースでのデータ削除とインポート手順をまとめてみた

こんにちは!まちいろの森です。

ローカル環境では再現しない不具合がテスト環境では再現する…、テスト環境でお客様が入力したデータを利用してローカル環境で不具合を確認したい、 テスト環境のマスタをローカル環境に一括で登録したい…などという方は少なくないと思います。 私も以前、上記と同じ悩みを持っており、SQLコマンドを利用してテスト環境のデータをローカル環境へ登録する作業が簡単にできるようになりました。 なので今回はMySQLのデータベースのデータ削除、データ一括インポートコマンドをご紹介したいと思います!

サーバー上でバックアップ取得

バックアップ取得です。インポートしたい単位がテーブル単位なのかデータベース単位なのかでバックアップ取得のコマンドが異なります。 今回は両方ご紹介します!

データベース

mysqldump -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] --default-character-set=utf8 > [エクスポートしたいファイル名].sql

対象テーブル

mysql -N -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] -e"show tables '[テーブル名]';" | xargs mysqldump -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] -t --default-character-set=utf8 > [エクスポートしたいファイル名].sql

※t_から始まるテーブル名すべてをエクスポートしたい場合

mysql -N -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] -e"show tables like 't_%';"  | xargs mysqldump -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] -t --default-character-set=utf8 > [エクスポートしたいファイル名].sql

取り込みたい環境(ローカル環境)のデータ削除

バックアップ取得が完了したので、データ削除です。

データベース自体削除

drop database [データベース名];

対象テーブル

drop table [テーブル名];

※対象テーブルを削除する場合、データベースを以下コマンドで選択しておくこと!

use [データベース名];

取り込みたい環境(ローカル環境)へのインポート

インポート手順になります。

データベース

データベースを削除したので、データベース作成・実行権限を持つユーザを作成を行ってからインポートします。

CREATE DATABASE [データベース名] DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON [データベース名].* TO [ユーザ名]@localhost IDENTIFIED BY '[パスワード]';
mysql -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] < [インポートしたいファイル名].sql

テーブル

mysql -u[データベースのユーザ名] -p[データベースのパスワード] [データベース名] < [インポートしたいファイル名].sql

最後に

データ一括削除・インポート、不具合を確認する上で便利なコマンドになります。 ぜひみなさんも利用してみてください!

ただし、削除にはお気をつけください。(必ずバックアップを取ることをお忘れなく!!!)