適用於 macOS (Intel/Apple Silicon) MySQL 5.7/8.0,利用 MySQL Workbench 可視化界面直接編輯用戶權限表,避免手寫 SQL 風險。
/usr/local/mysql/ 或 /opt/homebrew/opt/mysql/ (Apple Silicon Homebrew)# 方式一:系統偏好設置 → MySQL → Stop MySQL Server # 方式二:命令行 sudo /usr/local/mysql/support-files/mysql.server stop # Homebrew 安裝 brew services stop mysql
cd /usr/local/mysql/bin sudo su ./mysqld_safe --skip-grant-tables & # 看到 "mysqld daemon started" 表示成功 # 保持終端開啟(或用 nohup / screen 後台運行)
Localhost_SkipGrant127.0.0.1 (不能用 localhost,避免 Unix Socket)3306rootroot@localhost、root@127.0.0.1、root@%% (允許遠程) 或保留 localhost/127.0.0.1# 關閉 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 connect | Host 限制不匹配 | Limit Connectivity → 改為 % 或具體 IP |
# 同樣啟動 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;
/opt/homebrew/opt/mysql/bin/mysqld_safe/opt/homebrew/var/mysql/brew services start/stop/restart mysql127.0.0.1 而非 localhost圖形化修復的優勢:**所見即所得、權限矩陣可視、密碼複雜度提示、誤操作可撤銷**。配合 skip-grant-tables,是 macOS 下 MySQL 密碼/權限故障的「最快解藥」。