MySQL設定

myPhpAdmin で Wordpress 絡みの古い設定を見なおしているときに、勢い余って全ユーザを削除していまい、凹む。myPhpAdminに全くログインできなくなった。

ググると、同じようなことをした方を発見したが、環境が明記されていないので記事の情報を参考に作業をしてみる。

作業環境は Windows 7 上の MySQL 5.1。

  1. MySQLのbinフォルダで、cmd を2つ開く。
  2. 1つ目の cmd で mysqld --safe-mode -skip-grant-tables を実行
  3. 2つ目の cmd で mysql -u root を実行
> USE mysql;
> SELECT * FROM user;
> INSERT INTO user(host,user,password,ssl_cipher,x509_issuer,x509_subject) VALUES ('localhost','root',PASSWORD('XXXXXXXX'),'','','');
> INSERT INTO user(host,user,password,ssl_cipher,x509_issuer,x509_subject) VALUES ('%','root',PASSWORD('XXXXXXXX'),'','','');
> 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', Event_priv='Y',Trigger_priv='Y' WHERE User='root' AND host='localhost';
> 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' AND host='%';
> flush privileges;
> exit
  1. タスクマネージャで、mysqldを終了。
  2. サービスから MySQL開始
  3. phpMyAdmin にログイン。成功!

これで作業再開できる。