[メモ][MySQL] rootユーザーの全権限を消してしまったときの対処方法
rootユーザーの全権限をREVOKE文で消してしまいかなり冷や汗かいた。
REVOKE ALL ON *.* FROM root@'%';
対処したときの方法をメモしとく。
mysqlサーバーをシングルユーザ-モード?っぽいモードで動かす。
まずmysqlサーバーを止める
$ sudo /etc/init.d/mysql stop
次に /etc/my.cnfの[mysqld]の設定を変更し、Linuxのシングルユーザーモードっぽいモードで動かす。
skip-grant-tables
#このオプションつけたときのmysqlサーバーって、何て呼ぶんだか分からん。
mysqlサーバーを再起動。これでシングルユーザーモードでmysqlサーバーが動く。
$ sudo /etc/init.d/mysql start
rootユーザーの権限を復活
mysqlデータベースにアクセス
$ mysql mysql> use mysql;
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', Repl_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';