概要
たまにローカルのMySQLをPC上からMySQLごと削除したい場面がある。ただ、データは残しておきたいときもあるので、バックアップ・リストア方法を調べた。
基本的には mysqldumpでバックアップ・リストアする - とほほのWWW入門 を参考にさせていただいてます! www.tohoho-web.com
バックアップ
とりあえず以下のコマンドを叩けば、最低限安全にバックアップは取れる。
mysqldump -h localhost -u root -p パスワード --databases データベース名 \ --single-transaction > dump.sql
冒頭紹介した記事では、--flush-logs
や--master-data=2
のオプションを付けていたが、アプリ側の設定によっては以下のエラーが起こる(起こった)
mysqldump: Error: Binlogging on server not active
対応方法は、2つ。
1つ目は、my.cnf
に以下の設定を追加し、再起動。
[mysqld] log_bin = /var/lib/mysql/mysql-bin.log
もう一つは、--flush-logs
と--master-data=2
のオプションを使わないこと。
リストア
mysql -h localhost -u root -p パスワード < dump.sql