【问题标题】:I accidentally deleted the admin account in my phpMyAdmin. How can I re-give privileges to root@localhost?我不小心删除了 phpMyAdmin 中的管理员帐户。如何重新授予 root@localhost 权限?
【发布时间】:2013-01-24 23:37:35
【问题描述】:

不知何故,我不小心删除了我的 phpMyAdmin 中的管理员帐户。现在,我什么都做不了。但是,我可以访问控制台,它允许我登录。如何重新授予 root@localhost 权限?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    有一种简单易行的方法可以解决这个问题。您需要停止 mysql 并转到 xampp 文件夹中的 mysql 文件夹。然后在您的命令提示符下运行以下命令。

    c:\xampp\mysql> resetroot.bat

    如果您没有那个 resetroot.bat,请在此处复制该内容表单。

    @echo off
    echo USE mysql; >resetroot.sql
    echo. >>resetroot.sql
    echo REPLACE INTO user VALUES ('localhost', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, '', ''); >>resetroot.sql
    echo REPLACE INTO user VALUES ('127.0.0.1', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, '', ''); >>resetroot.sql
    echo REPLACE INTO user VALUES ('localhost', 'pma', '', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0, '', ''); >>resetroot.sql
    
    bin\mysqld.exe --no-defaults --bind-address=127.0.0.1 --bootstrap --console --standalone <resetroot.sql >nul
    del resetroot.sql
    echo.
    echo Passwoerter fuer Benutzer "root" und "pma" wurden geloescht.
    echo Passwords for user "root" and "pma" were deleted.
    echo.
    pause
    

    将此文件用作resetroot.sql

    使用 mysql;

    REPLACE INTO user VALUES ('localhost', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, '', ''); 
    REPLACE INTO user VALUES ('127.0.0.1', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, '', ''); 
    REPLACE INTO user VALUES ('localhost', 'pma', '', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0, '', ''); 
    

    【讨论】:

      【解决方案2】:

      来自 mysql 文档

      创建帐户并授予权限

      mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
      mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
          ->     WITH GRANT OPTION;
      mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
      mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
          ->     WITH GRANT OPTION;
      mysql> CREATE USER 'admin'@'localhost';
      mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
      mysql> CREATE USER 'dummy'@'localhost';
      

      Adding User

      更新

      尝试从这个答案运行脚本:
      Restoring Deleted 'Root' User and Password For MySQL

      【讨论】:

      • 你是怎么登陆控制台的?您是如何删除帐户的?
      • 我有root账户。它只是删除了根 PRIVLEDGES。有没有办法恢复权限?
      • 我使用 phpmyadmin 登录,但现在一切都搞砸了。
      【解决方案3】:

      本手册介绍了如何在您删除(或忘记)root 帐户的密码时设置或重置它:

      http://dev.mysql.com/doc/refman/5.5/en/resetting-permissions.html

      【讨论】:

        【解决方案4】:

        我不小心删除了 xampp 上的 root(管理员)帐户并失去了权限。终于,我找到了出路:

        • 卸载 xampp
        • 安装另一个版本的 xampp。

        宾果!您的 root 权限已重新设置。

        注意:您无法恢复已删除的 root (admin) 帐户的旧数据库。需要安装另一个版本。重新安装相同版本的 xampp 不会有任何作用。

        【讨论】:

          【解决方案5】:

          这对我有用

          1. 下载您的 xampp 服务器的相关可移植版本
          2. 找到xampp/mysql/data/mysql 目录并将其替换为可移植版本(zip 文件)中的目录

          我认为这会重置 mysql 数据库。所以这不会影响任何其他数据库或您的数据。

          【讨论】:

            猜你喜欢
            • 2015-06-19
            • 2012-01-19
            • 2020-12-11
            • 2023-04-06
            • 1970-01-01
            • 2019-04-10
            • 2016-12-07
            • 1970-01-01
            • 2020-09-04
            相关资源
            最近更新 更多