当前位置 云小秘 MySQL 正文 下一篇:

Mysql误删root用户解决办法

#背景
今天下午开发组反应无法使用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用户解决办法

更多内容请关注公众号


本文来自网络,不代表云小秘立场,转载请注明出处:https://www.cloudmmu.com/132.html

作者: 欧邦

折腾不休,奋斗不止

发表评论

联系我们

联系我们

15877997995

在线咨询: QQ交谈

邮箱: oubang@live.cn

工作时间:周一至周五,9:00-21:00,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部