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

macOS MySQL 忘記 Root 密碼或權限錯誤:Workbench 圖形化修復最快方案

     編輯:MySQL 資料庫相關知識

核心思路:圖形化工具 + skip-grant-tables = 零 SQL 修復

適用於 macOS (Intel/Apple Silicon) MySQL 5.7/8.0,利用 MySQL Workbench 可視化界面直接編輯用戶權限表,避免手寫 SQL 風險。

前置準備

  1. 安裝 MySQL Workbench(官網下載 .dmg 安裝)
  2. 確認 MySQL 安裝路徑:通常 /usr/local/mysql/ 或 /opt/homebrew/opt/mysql/ (Apple Silicon Homebrew)

分步操作流程

1. 停止 MySQL 服務

# 方式一:系統偏好設置 → MySQL → Stop MySQL Server
# 方式二:命令行
sudo /usr/local/mysql/support-files/mysql.server stop
# Homebrew 安裝
brew services stop mysql

2. 啟動 skip-grant-tables 模式

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

# 看到 "mysqld daemon started" 表示成功
# 保持終端開啟(或用 nohup / screen 後台運行)

3. Workbench 建立連接(無需密碼)

  1. Workbench 首頁「MySQL Connections」點 ➕
  2. Connection Name: Localhost_SkipGrant
  3. Hostname: 127.0.0.1 (不能用 localhost,避免 Unix Socket)
  4. Port: 3306
  5. Username: root
  6. Password: 留空 (skip-grant-tables 不驗證)
  7. Test Connection → OK → OK

4. 開啟 Server Administration 修復權限/密碼

  1. 雙擊剛建立的連接 → 進入 Server Administration
  2. 左側導航選 Users and Privileges (或 Security)
  3. 用戶列表中找到 root@localhost、root@127.0.0.1、root@%
  4. 修復權限:Administrative Roles → 勾選 DBA (全權限)
  5. 修改密碼:Account Limits → Change Password → 輸入新強密碼 → Apply
  6. 修復 Host 限制:Limit Connectivity to Hosts Matching → 改為 % (允許遠程) 或保留 localhost/127.0.0.1
  7. 點擊 Apply 保存所有變更

5. 重啟正常服務驗證

# 關閉 skip-grant-tables 進程 (Ctrl+C 或 kill)
# 正常啟動
sudo /usr/local/mysql/support-files/mysql.server start
# 或 brew services start mysql

# 驗證新密碼
mysql -u root -p
# 輸入新密碼登錄成功

常見報錯與對應修復

報錯原因Workbench 修復動作
ERROR 1045: Access denied (using password: YES)密碼錯誤或權限不足skip-grant-tables 登錄 → 重置密碼 → 勾選 DBA 角色
Access denied; need SUPER privilege缺少 SUPER 權限Administrative Roles → 勾選 DBA (含 SUPER)
Host 'x.x.x.x' is not allowed to connectHost 限制不匹配Limit Connectivity → 改為 % 或具體 IP

命令行備選方案(無 Workbench 時)

# 同樣啟動 skip-grant-tables 後
mysql -u root

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP@ss123' ACCOUNT UNLOCK;
-- 5.7 語法;5.6 用 UPDATE user SET Password=PASSWORD('...')

FLUSH PRIVILEGES;
EXIT;

Apple Silicon (M1/M2/M3) 特別說明

  • Homebrew 安裝路徑:/opt/homebrew/opt/mysql/bin/mysqld_safe
  • data 目錄:/opt/homebrew/var/mysql/
  • 服務管理:brew services start/stop/restart mysql
  • Workbench 連接 Hostname 填 127.0.0.1 而非 localhost

圖形化修復的優勢:**所見即所得、權限矩陣可視、密碼複雜度提示、誤操作可撤銷**。配合 skip-grant-tables,是 macOS 下 MySQL 密碼/權限故障的「最快解藥」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved