首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL Root 賬號權限遺失的緊急修復方案

     編輯:MySQL 綜合教學

MySQL Root 賬號權限遺失的緊急修復方案

在 AMH 面板操作失誤將 Root 用戶 Host 從 localhost 改為 % 後,導致 Root 失去所有權限,甚至無法登入管理。本文記錄利用 skip-grant-tables 跳過權限驗證,直接操作 mysql.user 表恢復 Root 全權限的完整步驟。

故障現象

修改 Root 遠程訪問權限後,AMYSQL 面板操作導致 Root 所有權限字段變為 N,相當於賬號被鎖定,無法執行任何管理操作。

核心解決思路:skip-grant-tables

mysqld_safe --skip-grant-tables & 以跳過權限表啟動 MySQL,隨後無密碼登入,直接更新權限表。

詳細修復步驟

  1. 正常停止 MySQL:service mysqld stop(避免 pkill 導致 mysqld dead but subsys locked)。
  2. 跳過權限啟動:
    mysqld_safe --skip-grant-tables &
    & 表示後台運行,釋放終端。
  3. 無密碼登入:mysql 直接進入。
  4. 更新權限表:
    USE mysql;
    逐條將 Root 所有權限字段置為 'Y':
    UPDATE user SET 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', Alter_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', Event_priv='Y', Trigger_priv='Y' WHERE User='root';
  5. 確保雙 Host 皆有權限:mysql.user 表中 Host='localhost' 和 Host='%' 兩條記錄均需擁有全權限。
  6. 重啟 MySQL 正常模式:service mysqld restart。
  7. (可選)修改 Root 密碼:UPDATE user SET Password=PASSWORD('newpwd') WHERE User='root'; FLUSH PRIVILEGES; 並同步更新應用配置文件。
權限更新示意圖

關鍵提醒

  • 必須擁有服務器 Root(系統管理員)權限才能執行此操作。
  • 生產環境操作前建議快照備份數據目錄。
  • 修復後務必執行 FLUSH PRIVILEGES; 使權限立即生效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved