解决误删Mysql中root所有权限的方法!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

背景:

    长时间的对着电脑,造成了"神志不清",一不小心在Mysql下误操作了“revoke all on *.* from 'root'@'localhost'; ”,这个命令的意思就是删除mysql中最高权限的用户root的所有权限。因为本机mysql的密码为空,虽然依旧可以进去mysql,但再也不法执行修改操作。


解决方法:

1、首先杀掉mysql进程

#pkill mysql

2、以--skip-grant-tables方式启动

#/usr/local/mysql/bin/mysqld_safe  --user mysql --skip-grant-tables&

3、更新的MYSQL.USER表的所有字段中为N的为Y

# /usr/local/mysql/bin/mysql  进入mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
>use mysql;
update  user  set  Select_priv = 'Y'  where  user  'root' ;
update  user  set  Insert_priv = 'Y'  where  user  'root' ;
update  user  set  Update_priv = 'Y'  where  user  'root' ;
update  user  set  Delete_priv = 'Y'  where  user  'root' ;
update  user  set  Create_priv = 'Y'  where  user  'root' ;
update  user  set  Drop_priv = 'Y'  where  user  'root' ;
update  user  set  Reload_priv = 'Y'  where  user  'root' ;
update  user  set  Shutdown_priv = 'Y'  where  user  'root' ;
update  user  set  Process_priv = 'Y'  where  user  'root' ;
update  user  set  File_priv = 'Y'  where  user  'root' ;
update  user  set  Grant_priv = 'Y'  where  user  'root' ;
update  user  set  References_priv = 'Y'  where  user  'root' ;
update  user  set  Index_priv = 'Y'  where  user  'root' ;
update  user  set  Alter_priv = 'Y'  where  user  'root' ;
update  user  set  Show_db_priv = 'Y'  where  user  'root' ;
update  user  set  Super_priv = 'Y'  where  user  'root' ;
update  user  set  Create_tmp_table_priv = 'Y'  where  user  'root' ;
update  user  set  Lock_tables_priv = 'Y'  where  user  'root' ;
update  user  set  Execute_priv = 'Y'  where  user  'root' ;
update  user  set  Repl_slave_priv = 'Y'  where  user  'root' ;
update  user  set  Repl_client_priv = 'Y'  where  user  'root' ;
update  user  set  Create_view_priv = 'Y'  where  user  'root' ;
update  user  set  Show_view_priv = 'Y'  where  user  'root' ;
update  user  set  Create_routine_priv = 'Y'  where  user  'root' ;
update  user  set  Alter_routine_priv = 'Y'  where  user  'root' ;
update  user  set  Create_user_priv = 'Y'  where  user  'root' ;
update  user  set  Event_priv = 'Y'  where  user  'root' ;
update  user  set  Trigger_priv = 'Y'  where  user  'root' ;


总结:

    权限问题最后要保证“mysql.user”表中 host为“localhost”和“%”都有root的所有权限。 

    host列是指定登录的ip,比如说 user=root host=192.168.1.1 ,这里的意思就是说,root用户只能通过 192.168.1.1的客户端去访问,而%则是个通配符, 如果host=192.168.1.%,那么就表示 只要是 ip为host=192.168.1.前缀的客户端都可以连接,那么host=%的话则表示所有ip都有权去连接,这也就是为什么在开启远程连接的时候,大部分人都直接把host改成%的缘故,因为省事。


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1641488,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 关系型数据库 MySQL
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
122 1
|
2月前
|
存储 关系型数据库 MySQL
提高MySQL查询性能的方法有很多
提高MySQL查询性能的方法有很多
179 7
|
1月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
104 1
|
1月前
|
SQL NoSQL 关系型数据库
|
1月前
|
关系型数据库 MySQL
Mysql 中日期比较大小的方法有哪些?
在 MySQL 中,可以通过多种方法比较日期的大小,包括使用比较运算符、NOW() 函数、DATEDIFF 函数和 DATE 函数。这些方法可以帮助你筛选出特定日期范围内的记录,确保日期格式一致以避免错误。
|
1月前
|
SQL 关系型数据库 MySQL
mysql数据误删后的数据回滚
【11月更文挑战第1天】本文介绍了四种恢复误删数据的方法:1. 使用事务回滚,通过 `pymysql` 库在 Python 中实现;2. 使用备份恢复,通过 `mysqldump` 命令备份和恢复数据;3. 使用二进制日志恢复,通过 `mysqlbinlog` 工具恢复特定位置的事件;4. 使用延迟复制从副本恢复,通过停止和重启从库复制来恢复数据。每种方法都有详细的步骤和示例代码。
209 2
|
2月前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
27天前
|
存储 关系型数据库 MySQL
【赵渝强老师】解决MySQL丢失root用户密码
本文介绍了MySQL数据库中用户密码存储的变化,以及如何通过特殊方法重置root用户的密码。从MySQL 5.7版本开始,密码字段由“password”改为“authentication_string”。文章详细列出了重置密码的步骤,并提供了相关代码示例和视频教程。
|
2月前
|
SQL 关系型数据库 MySQL
MySQL误删怎么办?
本文详细介绍了如何通过MySQL的binlog日志恢复被误删除的数据。首先,确保binlog功能已开启并确认其模式(row模式更佳)。然后,通过查询binlog文件找到删除操作的具体位置。提供了两种恢复方案:一是直接找到并重放insert语句;二是通过逆向操作重新插入数据。文章还推荐了binlog2mysql等工具简化这一过程,帮助自动生成所需SQL语句。适合数据库管理员和开发者参考。
|
3月前
|
关系型数据库 MySQL Unix
MySQL配置不区分大小写的方法
结论 通过适当配置 lower_case_table_names参数以及在数据定义和查询中选择合适的校对规则,可以灵活地控制MySQL中的大小写敏感性,以适应不同的应用场景和需求。这样的设置既可以增加数据库的兼容性,又可以在必要时利用大小写敏感性进行精确的数据处理。需要注意的是,修改 lower_case_table_names参数后,最好在数据库初始化时进行,以避免现有表名的大小写问题。
368 3