前言:昨晚本来想关掉某一个数据库的root权限,结果没想到去掉了root用户的各种权限,导致服务器数据库崩溃,不得不跨权限操作,加回权限。

方法

  1.  在cmd中输入net stop mysql  #先停止MySQL服务
  2. 进入Mysql Bin目录,执行 mysqld -nt –skip-grant-tables  #以不检查权限的方式启动
  3. 此时这个cmd进入持续运行状态(表述不太对),所以要重新开打一个命令提示符的窗口(CMD)用空密码方式使用root用户登录MySQL;
  4. mysql -u root;
  5. use mysql ;
  6. UPDATE USER SET select_priv=‘Y’,Insert_priv=‘Y’,Update_priv=‘Y’,Delete_priv=‘Y’,Create_priv=‘Y’,Drop_priv=‘Y’,Reload_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’,Create_tablespace_priv=‘Y’   WHERE user=‘root’; #即加回所有权限
  7. update mysql.user set password=PASSWORD(‘password’where User=‘root’;  #忘记密码时的操作
  8. flush privileges; #刷新权限
  9. exit; #退出MySQL
  10. net start mysql #重启服务,搞定

发誓在学完这学期的数据库之前不乱折腾数据库了。

reference: http://blog.csdn.net/cycao313/article/details/8454607