【问题标题】:How do I restore the MySQL root user's privileges?如何恢复 MySQL root 用户的权限?
【发布时间】:2010-12-12 02:37:42
【问题描述】:

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

【问题讨论】:

    标签: mysql root


    【解决方案1】:

    您仍然可以在数据库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 DB 的访问权限。如果无法访问该数据库并且没有grant 权限,我能看到的唯一方法就是以某种方式获取mysql 数据库的新副本。

    你有没有机会设置一个复制从属?

    【讨论】:

    • 第一步访问被拒绝。
    • 如果确切的错误消息在某些方面更有用:错误 1044 (42000): 用户 'root'@'localhost' 拒绝访问数据库 'mysql'
    • 临时使用 --skip-grant-tables 来实现这个工作。一旦完成,授予权限就可以正常工作。 dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html 为可能遇到相同问题的其他人提供详细信息。
    猜你喜欢
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 2020-11-10
    • 2020-10-08
    • 2023-03-25
    • 2017-02-17
    相关资源
    最近更新 更多