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

Mac MySQL Root密碼遺忘與權限錯誤快速修復方案

     編輯:MySQL 綜合教學

Mac MySQL Root密碼遺忘與權限錯誤快速修復方案

Mac環境下因誤修改Root權限導致無法登錄、或遺忘密碼,是開發常見痛點。本文提供基於MySQL Workbench的可視化修復方案,操作直觀、同時解決密碼與權限雙重問題。

核心思路

  1. 停止MySQL服務
  2. 以 --skip-grant-tables 跳過權限驗證啟動
  3. 用Workbench免密連接,可視化修復用戶權限、重置密碼
  4. 正常重啟服務驗證

詳細步驟

1. 安裝 MySQL Workbench

官網下載 macOS版 DMG 安裝。Workbench是官方圖形化管理工具,集成Server Administration、SQL開發、數據建模功能。

2. 停止 MySQL 服務

系統偏好設置 → 最底部 MySQL 圖標 → Stop MySQL Server

或命令行:sudo /usr/local/mysql/support-files/mysql.server stop

3. 啟動跳過授權模式

cd /usr/local/mysql/bin/
sudo su
./mysqld_safe --skip-grant-tables &

終端顯示 mysqld_safe Starting mysqld daemon... 表示啟動成功。保持該終端窗口開啟。

4. Workbench 免密連接並修復

  1. Workbench 主界面點 + 創建連接:
    • Connection Name: Local Recovery
    • Hostname: 127.0.0.1
    • Port: 3306
    • Username: root
    • Password: 留空(關鍵!跳過授權模式不驗證密碼)
  2. 點 Test Connection → 成功 → OK
  3. 雙擊該連接進入 SQL 編輯器
  4. 點擊左側導航 Server → Users and Privileges (或 Server Administration 選擇該連接雙擊)
  5. 在用戶列表找到 root@localhost (及 root@127.0.0.1、root@% 等所有Root賬號)
  6. 逐個修復:
    • Account Limits:根據需求設置 Max Queries/Connections/Updates
    • Administrative Roles:勾選 DBA 或全選所有權限 — 解決「Access denied; need SUPER privilege」核心問題
    • Schema Privileges:按需分配具體庫表權限
    • Password:點 Change Password 設置新強密碼
    • Limit Connectivity to Hosts Matching:確認為 % (允許任意Host) 或具體IP,避免Host不匹配拒絕連接
  7. 點擊右下角 Apply 保存變更

5. 正常重啟驗證

  1. 關閉 --skip-grant-tables 進程:Ctrl+C 或殺掉對應PID
  2. 系統偏好設置 → MySQL → Start MySQL Server
  3. Workbench 用新密碼測試連接 → 成功
  4. 命令行驗證:mysql -u root -p 輸入新密碼登錄

輔助命令備忘

# 修改密碼 (已知舊密碼時)
mysqladmin -u root -p'舊密碼' password '新密碼'

# 登錄
mysql -u root -p

# 查看當前用戶
SELECT USER(), CURRENT_USER();

常見錯誤自查清單

現象可能原因對應修復
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)密碼錯誤 / Host不匹配 / 權限不足按本文流程重置密碼、修復Host、授予DBA角色
Access denied; you need (at least one of) the SUPER privilege(s)當前賬號缺少SUPER權限Workbench中Administrative Roles勾選DBA/全選
Workbench連接失敗: Can't connect to MySQL server服務未啟動 / Port錯誤 / Socket路徑不匹配確認mysqld_safe進程運行、Port 3306、Socket /tmp/mysql.sock
修改後仍無法遠程連接Host限制為localhost / 防火牆攔截用戶Host改為% / 開放3306端口 / 檢查bind-address=0.0.0.0

最佳實踐建議

  • 日常開發使用非Root業務賬號,最小權限原則
  • Root僅保留 localhost/127.0.0.1 登錄,禁用 %
  • 密碼存入密碼管理器,避免明文記錄
  • 定期備份 mysql.user 表或導出 SHOW GRANTS 便於災難恢復
  • 啟用 validate_password 插件強制密碼複雜度
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved