在操作删除多余的普通权限数据库用户时,不小心误删除了Root管理员用户,如何恢复呢?简单写个教程记录下Mysql误删了root用户恢复过程,同时也给有需要的同学提供一丢丢帮助。
解决办法
1、先停止Mysql服务
2、编辑/etc/my.cnf配置文件(windows系统Mysql配置文件在安装目录下的my.ini)
3、在/etc/my.cnf中找到[mysqld]配置段中另起一行添加代码skip-grant-tables,编辑完后保存配置文件
4、重新启动Mysql服务
5、输入mysql,回车进入mysql命令行,输入use mysql,切换到Mysql表
6、输入如下命令添加root用户
insert into user(user,host,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values('root','localhost',PASSWORD('root'),'','','','');
7、授权Root用户权限
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",`Create_tablespace_priv` = "Y" where user="root" and host="localhost";

8、设置完成后编辑/etc/my.cnf中找到[mysqld]配置段添加代码skip-grant-tables删除,并重启服务
9、最后用前面PASSWORD设置的密码,登入


