MySQL のデータを取捨選択して別環境へコピーしたかった
お手軽に。ご利用は計画的に(これでよかったのか…?)。
mysqldump で全部ダンプすれば良いのでは? → コピーしたくないデータがありました><
■ユーザについて
select Host, User from mysql.user;
で現在いるユーザを確認する。
show grants for 'ユーザ名'@'サーバ(localhostとか)';
必要なユーザについて、上記コマンドを叩いて GRANT 文を取得して
コピー先でそのまま流す。
■データベースについて
show create database DB名;
で create 文が取得できるのでそのままコピペ。
■テーブルについて
mysqldump -uユーザ名 -p DB名 テーブル名 > ダンプファイル
とかすると、テーブルごとにダンプがとれるので、それを投入する。
-d オプションで、データ抜き(テーブル定義のみ) にできる。
--skip-lock-tables でロックをせずにダンプを取れる(ダンプしている間に更新されうる)。
が、--single-transaction の方が整合性のとれたデータが取得できるらしいので
--skip-lock-tables は使わない方が良さそう。
PHPのテクメモ ≫ Blog Archive ≫ mysqldumpで「when using LOCK TABLES」と怒られる
MySQL :: MySQL 5.1 リファレンスマニュアル :: 4.9.2.1 バックアップ ポリシー
mysqldump で全部ダンプすれば良いのでは? → コピーしたくないデータがありました><
■ユーザについて
select Host, User from mysql.user;
で現在いるユーザを確認する。
show grants for 'ユーザ名'@'サーバ(localhostとか)';
必要なユーザについて、上記コマンドを叩いて GRANT 文を取得して
コピー先でそのまま流す。
■データベースについて
show create database DB名;
で create 文が取得できるのでそのままコピペ。
■テーブルについて
mysqldump -uユーザ名 -p DB名 テーブル名 > ダンプファイル
とかすると、テーブルごとにダンプがとれるので、それを投入する。
-d オプションで、データ抜き(テーブル定義のみ) にできる。
--skip-lock-tables でロックをせずにダンプを取れる(ダンプしている間に更新されうる)。
が、--single-transaction の方が整合性のとれたデータが取得できるらしいので
--skip-lock-tables は使わない方が良さそう。
PHPのテクメモ ≫ Blog Archive ≫ mysqldumpで「when using LOCK TABLES」と怒られる
MySQL :: MySQL 5.1 リファレンスマニュアル :: 4.9.2.1 バックアップ ポリシー
by tokage-shippo
| 2013-02-01 21:11
