mysql user表root 用户误删除后恢复root用户
方法/步骤
1、停止mysql服务;在mysql安装目录下找到my.ini;在my.ini中找到以下片段[mysqld];另起一行加入代码:skip-grant-tables 并保存
2、启动mysql服务,并登录mysql(无用户名和密码);找到user表加入root用户INSERT INTO user
(Host,User,Password) VALUES( 'localhost ', 'root ',password( '123456
'))
3、root用户设置权限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'commit
4、把my.ini刚才加入的那行删除并重启服务
5、用root用户登录,OK!
因为mysql把mysql.user加载进内存中的,每次验证用户的连接都是调用这些缓存中的信息的.你删除用户后,如果mysql服务器没重新启动过,或没手工重新让内存加载mysql.user(没有执行flush privileges),则你已删除的用户还可以用来连接(因为这些信息还保存在内存缓存里,而没有刷新成最新mysql.user系统表里面的信息).
解决办法:
方法1:
删除用户后,继续执行 flush privileges,重新刷新缓存中的用户信息.
方法2:
重新启动mysql服务.
我遇到过这样的问题:按钮变灰色,那是因为我所建的表中没有主键。至于你用MySQL command line client进行删除时,出现的错误是因为没有选择你所建的那张表的数据库。你可以直接在MySQL Administrator里面的那张表进行删除,虽然按钮变成灰色了。但是你可以是用sql语句进行删除啊、
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)