解决误删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,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
69
分享
相关文章
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
MySQL细节优化:关闭大小写敏感功能的方法。
通过这种方法,你就可以成功关闭 MySQL 的大小写敏感功能,让你的数据库操作更加便捷。
66 19
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
本文介绍了MySQL中`CONTINUE HANDLER FOR NOT FOUND`的用法及其在YashanDB中的改写方法。通过一个示例存储过程,展示了如何使用游标和异常处理机制来应对“未找到数据”的情况。在MySQL中,`CONTINUE HANDLER`用于捕获此类异常;而在YashanDB中,则需改用游标的`%NOTFOUND`属性和`NO_DATA_FOUND`异常处理。文章对比了两者的执行效果,帮助用户顺利完成从MySQL到YashanDB的业务迁移。
【YashanDB知识库】MySQL field 函数的改写方法
本文来自YashanDB官网,介绍将MySQL的FIELD函数改写到YashanDB的方法。MySQL中,FIELD函数用于自定义排序;而在YashanDB中,可使用DECODE或CASE语句实现类似功能。示例展示对表`t1`按指定顺序排序的过程,提供两种改写方式,结果均符合预期。
【YashanDB知识库】MySQL返回结果集的存储过程的改写方法
本文介绍了将MySQL存储过程改写至YashanDB的解决方案。由于MySQL存储过程可直接返回结果集,而YashanDB需通过返回SYS_REF_CURSOR的函数实现类似功能,因此需要对代码进行转换。示例中展示了如何将MySQL存储过程`proc1`改写为YashanDB函数,并调整JDBC应用代码以适配REF_CURSOR输出参数,从而正确获取查询结果。此方法确保了跨数据库场景下的兼容性与功能性。
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
189 82

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等