Mac環境下MySQL安裝後生成的隨機密碼極其複雜,若未及時修改並妥善保存,極易遺忘。本文提供兩種經驗證有效的重置方案,涵蓋命令行與圖形化工具,助你快速恢復訪問權限。
# 方式1:命令行 sudo /usr/local/mysql/support-files/mysql.server stop # 方式2:系統偏好設置 → MySQL → Stop MySQL Server
cd /usr/local/mysql/bin sudo su ./mysqld_safe --skip-grant-tables &
關鍵點: & 表示後台運行,終端會顯示進程PID。若報錯「Permission denied」,檢查/usr/local/mysql/data目錄擁有者是否為_mysql或root,必要時 sudo chown -R _mysql:_mysql /usr/local/mysql/data。
# 建議別名簡化路徑
alias mysql=/usr/local/mysql/bin/mysql
mysql
# 進入MySQL交互模式
USE mysql;
FLUSH PRIVILEGES; -- 關鍵!刷新權限表,否則UPDATE不生效
-- MySQL 5.7.6+ / 8.0 語法
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
-- MySQL 5.7.6 前舊語法 (若上條報錯嘗試此條)
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
EXIT;
# 關閉 --skip-grant-tables 進程 # 方式1:系統偏好設置 → MySQL → Start MySQL Server # 方式2:命令行 sudo /usr/local/mysql/support-files/mysql.server start # 驗證新密碼 mysql -u root -p # 輸入新密碼登錄成功
適用於同時存在「忘記密碼」與「權限誤配置(如Host限制、缺少SUPER權限)」的場景。
--skip-grant-tables 模式啟動root@localhost,可視化操作:
DBA 或全選恢復超級權限--skip-grant-tables 模式)| 錯誤信息 | 原因 | 解決 |
|---|---|---|
| ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) | 密碼錯誤或權限不足 | 按本文方案重置密碼/修復權限 |
| ERROR 1045 (28000): Access denied ... (using password: NO) | 未提供密碼 | 加 -p 參數或按方案免密進入 |
| Access denied; you need SUPER privilege(s) | 當前用戶缺少SUPER權限 | Workbench方案修復權限 |
| mysqld_safe: command not found | 路徑未加入PATH | 使用絕對路徑 /usr/local/mysql/bin/mysqld_safe |
| data目錄權限報錯 | data目錄擁有者非_mysql | sudo chown -R _mysql:_mysql /usr/local/mysql/data |
# 推薦:mysqladmin mysqladmin -u root -p'舊密碼' password '新密碼' # 或 SQL 方式 mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
UPDATE user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;validate_password 插件強制密碼策略