首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 誤刪 Root 用戶或忘記密碼終極恢復:拷貝 user 表文件或 Skip-Grant-Tables 重建

     編輯:MySQL 資料庫相關知識

方法一:從同版本實例拷貝 user 表文件(最快)

# 來源服務器(已知密碼)
cp /usr/local/mysql/var/mysql/user.frm /usr/local/mysql/var/mysql/user.MYD /usr/local/mysql/var/mysql/user.MYI /target/path/
# 目標服務器
cp /target/path/user.* /usr/local/mysql/var/mysql/
service mysql restart

方法二:Skip-Grant-Tables 重置(通用)

  1. 修改 my.cnf [mysqld] 加 skip-grant-tables,重啟
  2. 無密碼登錄:mysql -u root mysql
  3. 誤刪 root → 重建:
    INSERT INTO user SET Host='localhost',User='root',Password=PASSWORD('111111'),
    Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',
    Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',
    References_priv='Y',Index_priv='Y',Create_user_priv='Y',Show_db_priv='Y',Super_priv='Y',
    Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',
    Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',
    Alter_routine_priv='Y',Create_user_priv='Y';
  4. 忘記密碼 → 修改:
    UPDATE user SET Password=PASSWORD('111111') WHERE User='root';
  5. FLUSH PRIVILEGES;,移除 skip-grant-tables,重啟

純命令行重建 root(無 my.cnf 權限時)

killall mysqld
mysqld_safe --skip-grant-tables &
mysql -u root mysql
USE mysql;
INSERT INTO user SET User='root', Host='localhost', ...;  -- 同上
UPDATE user SET ... WHERE User='root';  -- 權限補全
QUIT
service mysql start
mysql -u root -p
SET PASSWORD=PASSWORD('123456');
FLUSH PRIVILEGES;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved