2010年11月9日火曜日

MySQL トラブル

ファイル破壊されまくり…

●テーブルが壊れた
ログインして,
mysql> check table 壊れたテーブル名
で原因が分かる

mysql> repair table 壊れたテーブル名
で直る
…らしいけどこれだと直らないことが多い気がする(^^;)

なので私の場合全部のデータが入っているフォルダ( /usr/local/mysql/var/データベース名 )
のバックアップを取っておいて,
壊れたテーブルの分だけデータを上書きしてやって無理矢理修復しました.


●ログインできなくなった(ユーザテーブルが壊れてた)
とりあえず kill でサーバを一度落として,
--skip-grant-tables オプションを指定して mysqld を再起動.
すると,どんなユーザでもログインできるようになるため,中に入ってから
mysql> select host,user,password from mysql.user;
でログインできるユーザを確認.
すると,ユーザテーブルが壊れてることが発覚したため,上記の repair で修復.
なんだかがっつりユーザが削除されてしまったので,
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
で権限を持つユーザの追加.

0 件のコメント: