轻松了解各种云产品、服务及动态、提供各种云服务。

Mysql误删root用户解决办法

132
文章目录
  1. 1. 停止MySQL服务
  2. 2. 修改MySQL配置文件
  3. 3. 重启MySQL服务
  4. 4. 无密码登陆MySQL
  5. 5. 重新添加root用户
  6. 6. 更新root用户权限
  7. 7. 退出重新登录设置root密码
  8. 8. 注释掉配置文件中新添加参数
  9. 9. 重启MySQL
  10. 参考文件
  11. 更多内容请关注公众号

#背景
今天下午开发组反应无法使用root用户登录到MySQL,在我登录失败几次的情况下,在配置文件中添加了skip-grant-tables选项,登录到MySQL服务,发现已经没有了root用户,而其他用户又没有root用户的权限,所以需要重新恢复root用户。

#解决方法
由于该实例上的其他用户没有root权限,所以只能重新创建root用户,并且拥有最高权限,具体步骤如下:

1. 停止MySQL服务

$ service mysqld stop

2. 修改MySQL配置文件

在MySQL的配置文件中[mysqld]模块中添加skip-grant-tables配置项,示例如下:

[mysqld]
#GTID config
gtid_mode=ON
log-slave-updates=1
enforce-gtid-consistency=1
skip-grant-tables

3. 重启MySQL服务

启动MySQL服务,使配置项生效

$ service mysqld start

4. 无密码登陆MySQL

$ mysql -p 

5. 重新添加root用户

使用insert添加root用户

insert into user set user=’root’,ssl_cipher=”,x509_issuer=”,x509_subject=”;

6. 更新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';

7. 退出重新登录设置root密码

1) 退出MySQL服务

mysql> exit

2) 以root用户无密码登录

$ mysql -uroot -p

3) 设置root用户密码

mysql>  update mysql.user set authentication_string=password('123456') where user='root';
mysql> flush privileges;

8. 注释掉配置文件中新添加参数

注释掉配置文件中的skip-grant-tables参数

[mysqld]
#GTID config
gtid_mode=ON
log-slave-updates=1
enforce-gtid-consistency=1
#skip-grant-tables

9. 重启MySQL

$ service mysqld restart

参考文件

mysql错误删除默认root用户解决办法

更多内容请关注公众号


来源:本文由云小秘原创撰写,欢迎分享本文,转载请保留出处和链接!

抢沙发

昵称*

邮箱*

网址