mysql误删root用户恢复方法

装完数据库清理一些认账号的时候不小心把root删除了,flush privileges 之后的新 root 忘了grant任何权限,查看MysqLd选项里面有个 −−skip-grant-tables


#/usr/libexec/MysqLd --verbos --help

MysqL5.5手册说明如下


--skip-grant-tables

This option causes the server to start without using the privilege system at all,which gives anyone with access to the server unrestricted access to all databases. You can cause a running server to start using the grant tables again by executing MysqLadmin flush-privileges or MysqLadmin reload command from a system shell,or by issuing a MysqL FLUSH PRIVILEGES statement after connecting to the server. This option also suppresses loading of plugins,user-defined functions (UDFs),and scheduled events. To cause plugins to be loaded anyway,use the --plugin-load option.

--skip-grant-tables is unavailable if MysqL was configured with the --disable-grant-options option. See Section 2.10.2,“Typical configure Options”.

MysqLd_safe是Unix/Linux系统下的MysqL服务器的一个启动脚本。这个脚本增加了一些安全特性,会在启动MysqL服务器以后继续监控其运行情况,并在出现错误的时候重新启动服务器。后台启动MysqL


#MysqLd_safe --skip-grant-tables &

如果没有root账户就添加一个


INSERT INTO user SET User='root',Host='localhost',ssl_cipher='',x509_issuer='',x509_subject='';

直接输入MysqL连接并添加权限,这时候是不能使用grant命令的,只能用update


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',authentication_string='' WHERE User='root';

注意我用的是MysqL是5.5版本,可能操作过程中sql语句或其他地方有不同,语句执行完毕之后需要flush privileges ,还可能要重新登录才行。

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...