Database JUNKY

MySQL,MariaDBを中心としたブログです

MySQL: mysqldumpのコマンドオプションメモ

mysqldump(mysql 5.5)のメモです。 いっぱいオプションがありますので、色々なサイトからかき集めてまとめてました。mysql 5.5になってからなのかな?レプリケーション関係(MASTER,SLAVE)のオプションが追加になっているようです。

このあたりはきっとどこかで使うであろうコマンドオプション [text] -t, --no-create-info テーブル作成情報(CREATE TABLEステートメント)を書き込まない。 -d, --no-data テーブルのレコード情報を一切書き込まない。テーブルの構造だけをダンプする場合、非常に便利である。 -n, --no-create-db CREATE DATABASE /!32312 IF NOT EXISTS/ db_name;が出力に含まれない。--databasesオプションまたは --all-databasesオプションを指定した場合は、上記の行が追加される。 -x 全てのテーブルをロック -Q ‘`’文字でデータベース、テーブル、そしてカラム名をクオートします。ANSI_QUOTESSQLモードが有効化されている場合、名前は‘"’キャラクタでクオートされます。このオプションはデフォルトで有効となっています。--skip-quote-namesで無効化することもできますが、このオプションは--compatibleのような--quote-namesを有効化するオプションの後に与えられるべきです。 -R 記憶されたルーチンを(関数とプロシージャ) ダンプされたデータベースからダンプします。.このオプションの使用はmysql.procテーブルのためのSELECT権限を要求します --dump-slave スレーブのみで・・ダンプをとった場合、スレーブが参照しているマスターのポジショ情報をCHANGE MASTERとしてダンプに含める。 --apply-slave-statements STOP SLAVEおよびSTART SLAVEコマンドを、CHANGE MASTERの前後につける。 --include-master-host-port CHANGE MASTERコマンドにマスターのホスト情報(hostname,port)を含める [/text]

・普通にバックアップ(定義もデータも含みます、ただしプロシージャは含みません) [shell] mysqldump -n -u myuser -pmypassword mydatabase > /tmp/mydatabase.dump [/shell]

・プロシージャの定義のみ出力する [shell] mysqldump -n -t -d -umyuser -pmypassword -R -Q --opt -r /tmp/proc.sql --single-transaction --lock-tables=false [/shell]

・slaveからのdumpの場合、マスタのポジションも併せてdumpする [shell] mysqldump develop -p --dump-slave > /tmp/develop.dump [/shell]