目次

MySQL - バックアップ

▼全データをバックアップ

# mysqldump -u root -p[パスワード] --all-databases > 任意のファイル名

▼データベース単位でバックアップ(例、DB:xoopsをバックアップ)

# mysqldump -u root -p[パスワード] xoops > xoops.sql

文字化け回避

# mysqldump --default-character-set=binary -u root -p testdb > testdb.sql

MySQLデータリストア

mysqldumpコマンドでバックアップすると。

その時のDBを作成するsql文が書かれたファイルが作られます。

そのsql文を実行する事によって、データをリストアするという事です。

▼例:xoops.sqlを使ってDB:xoopsをリストア

# mysql -u root -p[パスワード] xoops < xoops.sql

増分のみのバックアップ

MySQLサーバーがデーターをアップデートするときに増分をファイルに格納するためには、

サーバーは常にスタート時に –log-binオプションを必要とします。

サーバーがリスタートするときは何時でも、現在のバイナリーログに書き込む

のを止めて、新しいログを始めます。新しいのが現在のログとなります。

このようなスイッチはFLUSH LOGS SQLコマンドでも強制的に出来ます。

mysqldump リモート

リモートへdumpをコピー

mysqldump --all-databases | ssh -i key root@192.168.10.10 'cat > dump.sql'

リモートへ圧縮してコピー

mysqldump --all-databases | gzip | ssh -i key root@192.168.10.10 'cat > dump.sql.gz'

リモートへSSHしてからdumpの場合

ssh root@host "mysqldump --all-databases" | gzip | cat > dump.sql.gz