今回のサーバークラッシュでは 幸いな事にデータベースのデータが無事だったので 比較的短期間で再開できた。(まだ 半身不随ではあるのだが・・・・)
もし 今まで長い間 溜め込んできた データベース中のデータが壊れたら? っと 思うとぞっとする。
今回 まじめにデータベースのバックアップの問題に取り組む。
mysqlhotcopy
今まで データベースのバックアップに使用してきたコマンド。
使い方はこんな感じ。
mysqlhotcopy DATABASENAME -u root -p PASSWORD BACKUPDIR
お手軽に データベースは稼動状態のままで データをコピーしてくれる。
ただしコピーするのは MyISAMテーブルのみ、InnoDBはコピーしてくれんのよね。オプションで指定する方法があるのかな?ないのかな?
mysqldump
今回試してみようと思ってるコマンド。
使い方はこんな感じ。
mysqldump -u root -pPASSWORD DATABASENAME > BACKFILENAME
パスワード付きのコマンド入力で使用すると サーバーにインしてる第三者からpsコマンド等で ハッキングされる恐れがある。 セキュリティ的にあまりよろしくない。
そこでホームディレクトリに .my.cnfのファイル名で以下の内容を保存する。
[client] password=PASSWORD
入力して終えたら ファイルのアクセスモードを 600 or 400に設定する。
chmod 400 .my.cnf
以後は パスワードオプション無しで mysqldumpコマンドが使えるようになる。
mysqldump -u root DATABASENAME > BACKUPFILENAME