MySQLでなぜかrootを消してしまったり権限をなくしてしまった時の対処方法

こんばんは。田中です。
稀にあるようでないような現象かもしれませんが、(普通はありません。PASSを忘れたくらいならよくあるかと思いますが…)
なぜかMySQLでのrootを削除してしまったりREVOKEで全権限を無くしてしまった場合の対処法を備忘録として残しておきます。
言うまでもなく権限の無いrootユーザーやそれに変わるユーザーが存在しない場合、MySQLではエラーが頻発します。
以下、簡単ですが手順の解説です。コマンドライン操作解説については割愛しています。
root権限を復活させる
MySQLを停止
まずはMySQLを止めます。
/etc/init.d/mysqld stop
次に、–skip-grant-tablesオプション付きでMySQLを起動させます。
/usr/bin/mysqld_safe --skip-grant-tables
このようにすることによってMySQL既存権限を無視してMySQLを起動できます。
mysql -u root
これでパス無しでMySQLに接続することが可能です。
もちろんこのままではダメなので各設定を行っていきます。
use mysql; update user set password=PASSWORD('ぱすわーど') where user='root';
次に権限を再設定します。
ユーザーに権限を設定する
updateで権限を付与します。以下コピペです。
update user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Rpl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y'where User='root';
ちょっと多いのでどこか違っていたらすみません。。
そうしましたら一度接続を閉じます。
flush privileges;
exit;
抜けます。
\q
次に–skip-grant-tablesオプションなしで起動させるために、プロセスをKILLします。
PID不明な場合はps auxで調べてください。
# kill -KILL (mysqld_safe のPID) # kill -KILL (mysqld のPID)
MySQLを再起動させる
# service mysqld start
以上で終了です。
まあ大切なのはrootとかどうとかではなく権限ってことですね。
また勉強です。