首页 > 代码库 > Mysql误删root后的简单解决办法

Mysql误删root后的简单解决办法

今天在学习mysql数据库过程中,误删掉了root用户,一直出现 “mysql ERROR 1045 (28000): Access denied for user root”错误,网上查了半天才找到解决办法:

1.编辑mysql配置文件my.ini(windows下叫这个名字)或my.cnf (linux下叫这个名字)找到这个选项skip-grant-tables如果没有请添加!然后重启mysql服务器。

2.提示符下输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。

3.执行以下语句:

          a:  use mysql  

          b:  insert into user set user=’root’;

          c:  update user set password=password("newpassword") where user="root";

          d:  update user set host=‘localhost‘,select_priv=‘y‘, insert_priv=‘y‘,update_priv=‘y‘, Alter_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‘,create_user_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‘;

          e:   flush privileges;

4.注释或删除掉第一步配置文件中的skip-grant-tables选项并保存,重启mysql服务器。

重新登陆即可!

注意:mysql服务器版本为5.1.73,linux服务器版本为Centos6.5。

Mysql误删root后的简单解决办法