MySQLのバイナリログを読む

2013/08/15 | MySQL

自社サービスの問い合わせで「ログインできない」「データが消えている」というクレームをもらうことがある。今までのところ、ほぼその全てが「利用者側の誤った操作」によるものだ。たちの悪いことに自分に責任があることがわかっているにもかかわらずとぼけて問い合わせしてくるような人もいるようだ。

無料のサービス・全て自己責任で、というのがインターネット登場当時の昔の一般的な考え方だったかと思うが、昨今では無料サービスでも懇切丁寧なサポートを求める人が多いようだ(自分の意に沿わない返答だったからといってブログで「サービスが悪い」と書いたりする輩もいるからムカつくのだが)。

それはさておき、データの保全性と操作の履歴を確認できるよう、自社サービスにMySQLのバイナリログを出力するよう設定してある。このデータとapacheのログを見れば、だいたいいつ誰がどういう操作をしたのかというのは見当がつく。apacheのログはテキストだが、MySQLはその名の通りバイナリ。そのままテキストエディタで開くと、文字化けするところがあるのでやや見づらい。ということで、以下のコマンドを使って確認する。

mysqlbinlog ./mysql-bin.000004

スクロールして確認する場合は「| less」、テキストファイルに書き出すには「> ./log.dump」みたいな感じで。バイナリログはプログラムのバグ確認にも有効でとっても便利な機能だ。しかし「それでも俺はやってない」的なクレームもあるが、それはもう放置だよ。勝手にやってくれ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net