簡體   English   中英

我不小心刪除了我的 phpMyAdmin 中的管理員帳戶。 如何重新授予 root@localhost 權限?

[英]I accidentally deleted the admin account in my phpMyAdmin. How can I re-give privileges to root@localhost?

我不小心刪除了我的 phpMyAdmin 中的管理員帳戶。 現在,我什么也做不了。 但是,我可以訪問控制台,並且它可以讓我登錄。如何重新授予 root@localhost 權限?

有一種簡單易行的方法可以解決這個問題。 您需要停止 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, '', ''); 

來自 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';

添加用戶

更新

嘗試從這個答案運行腳本:
為 MySQL 恢復已刪除的“root”用戶和密碼

該手冊介紹了在刪除(或忘記)root 帳戶密碼時如何設置或重置它:

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

我不小心刪除了 xampp 上的 root (admin) 帳戶並丟失了權限。 最后,我找到了出路:

  • 卸載 xampp
  • 安裝另一個版本的 xampp。

答對了! 您的 root 權限將再次設置。

注意:您無法恢復已刪除的 root (admin) 帳戶的舊數據庫。 需要安裝另一個版本。 重新安裝相同版本的 xampp 不會做任何事情。

這對我有用

  1. 下載您的 xampp 服務器的相關可移植版本
  2. 找到xampp/mysql/data/mysql目錄並將其替換為 protable 版本(zip 文件)中的目錄

我認為這會重置mysql數據庫。 所以這不會影響任何其他數據庫或您的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM