menu
書いてる野郎
orebike@gmail.com
mysqldump -u root -phoge hoge_db > 何かファイル
こうするポイントは-pオプションのあとにスペースをあけない
mysqldump -u root -phoge hoge_db hoge_table > 何かファイル
--hex-blob
オプションをつけることによりバイナリデータが入っているカラムが全部16進リテラルとして書き出されます。なのでSQLとしてダンプしてテキストに保存するときはつけたほうがよい。
普通にダンプするとinsert文が一個になってしまうので、後で加工する場合や分割したい場合に具合がわるいので
--opt --skip-extended-insert
のオプションをつけると1レコード1insert文に分割してダンプしてくれる。
ダンプした後カラムを削ったりする場合あったほうがいいのでこの場合はcオプションをつけてやる
-c
定義のみをバックアップするには
-d
オプションをつける
データのみをバックアップするには
-t
オプションをつける
デフォルトではデータベースの定義はダンプされないので、丸々バックアップというときにはdatabaseオプションを付ける
--database
一部のデータしかいらない場合がある時where句同様の書き方で条件を指定することができる。
--where="hoge='piyo' AND fuga=123"
DBを動作させながらバックアップをとる場合に
--single-transaction
として、整合性を保つ。
バックアップが単なるSQLでやったのでそれを流し込んでやるだけ。
mysql -u root -phoge masters < 「何かファイル」
巨大なSQLを読み込む場合エラーが出て落ちる場合がある。そういうときは my.ini
とかに
max_allowed_packet = 16M
のように指定して限界値を上げておく
環境によっては
Unknown Command
みたいなエラーが出ることもある。そういう時は文字コード指定を入れて
mysql -u root -phoge --default-character-set=utf8 masters < 「何かファイル」
こんな感じにする。