mysqldumpで条件指定とか圧縮転送まとめ
mysqldumpのオプションとか圧縮/転送の方法までまとめました
まずは普通にdumpをとる。
これは指定したデータベース丸ごとdumpをとる
mysqldump -u ユーザ名 -p データベース名 > xxx.sql
全てのデータベースをdumpする場合は
mysqldump -u ユーザ名 -p -A > xxx.sql
テーブルを指定してdumpする場合は
mysqldump -u ユーザ名 -p データベース名 テーブル名 > xxx.sql
複数テーブルでもOK
mysqldump -u ユーザ名 -p データベース名 テーブル名 テーブル名 > xxx.sql
レコードのみdumpする場合はtオプションを指定
mysqldump -u ユーザ名 -p -t データベース名 テーブル名 > xxx.sql
逆にテーブル定義のみdumpする場合はdオプションを指定
mysqldump -u ユーザ名 -p -d データベース名 テーブル名 > xxx.sql
where句を指定して条件を満たすレコードのみ抽出する場合
(この例はidが10より小さいレコードが対象)
mysqldump -u ユーザ名 -p "-wid<10" データベース名 テーブル名 > xxx.sql
取得したdumpをgzipで圧縮する
mysqldump -u ユーザ名 -p データベース名 テーブル名 | gzip > xxx.sql.gz
さらに別サーバに転送する
mysqldump -u ユーザ名 -p データベース名 テーブル名 | gzip | ssh xxx@xxx.com 'cat > ~/xxx.sql.gz'
特に最後のやつは大量データを処理する時は便利。