如何恢复MySQL root用户权限?

发布于 2024-08-10 03:01:46 字数 65 浏览 4 评论 0原文

我不小心删除了 MySQL root 用户的大部分权限,包括授予权限的能力。有什么方法可以将该用户恢复到原始状态吗?

I accidentally removed most of the privileges from my MySQL root user, including the ability to grant privileges. Is there some way I can restore this user to its original state?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

路弥 2024-08-17 03:01:46

您可能仍然可以对数据库 mysql 中的表 user 执行 UPDATE

USE mysql;
UPDATE user SET Grant_priv='1' WHERE User='root';
FLUSH PRIVILEGES;

如果步骤 3 不起作用,则重新启动 MySQL 服务器将具有相同的效果。如果步骤 2 不起作用,您需要从备份中恢复 mysql.user。如果您没有备份,请进行备份,重新安装 MySQL,然后有选择地恢复备份,并保留 mysql 数据库中的表。

更新

您在第一步中被拒绝访问。此时,您需要使用备份的替代解决方案。 (据我所知或可以轻松想象)您不可能以任何其他方式恢复这些表。

更新2

确切的错误消息基本上是说,除了失去root的grant权限之外,您还删除了root对mysql数据库的访问权限。如果无法访问该数据库,也没有授予权限,我能看到的唯一方法就是以某种方式获取mysql数据库的新副本。

您是否有机会设置复制从站?

You might still be able to do an UPDATE on table user in database mysql:

USE mysql;
UPDATE user SET Grant_priv='1' WHERE User='root';
FLUSH PRIVILEGES;

If step 3 doesn't work, restarting the MySQL server will have the same effect. If step 2 doesn't work, you need to restore mysql.user from backup. If you don't have a backup, make a backup, reinstall MySQL and then selectively restore your backup, leaving out tables within the mysql database.

UPDATE

You're getting Access Denied during the first step. At this point, you're down to the alternative solutions with backups. There's no way (that I know of or can easily imagine) that you're recovering those tables any other way.

UPDATE 2

The exact error message is basically saying that in addition to losing root's grant privileges, you've dropped root's access to the mysql DB. Without having access to that DB and without having grant privileges, the only way I can see back is to somehow obtain a fresh copy of the mysql DB.

Any chance you have a replication slave set up?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文