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

Mac系統下MySQL Root密碼忘記重置完整指南

     編輯:MySQL 綜合教學

Mac系統下MySQL Root密碼忘記重置完整指南

Mac環境下MySQL安裝後生成的隨機密碼極其複雜,若未及時修改並妥善保存,極易遺忘。本文提供兩種經驗證有效的重置方案,涵蓋命令行與圖形化工具,助你快速恢復訪問權限。

方案一:命令行跳過授權表重置(通用、無需額外工具)

步驟 1:停止MySQL服務

# 方式1:命令行
sudo /usr/local/mysql/support-files/mysql.server stop

# 方式2:系統偏好設置 → MySQL → Stop MySQL Server

步驟 2:以跳過授權模式啟動

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。

步驟 3:新開終端窗口,免密登錄並修改密碼

# 建議別名簡化路徑
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;

步驟 4:正常重啟驗證

# 關閉 --skip-grant-tables 進程
# 方式1:系統偏好設置 → MySQL → Start MySQL Server
# 方式2:命令行
sudo /usr/local/mysql/support-files/mysql.server start

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

方案二:MySQL Workbench 圖形化重置(直觀、適合權限修復)

適用於同時存在「忘記密碼」與「權限誤配置(如Host限制、缺少SUPER權限)」的場景。

前置準備

  • 安裝 MySQL Workbench
  • 同方案一步驟 1-2:停止服務、--skip-grant-tables 模式啟動

操作步驟

  1. 打開 Workbench,創建新連接:Hostname=127.0.0.1,Port=3306,Username=root,Password留空(跳過授權模式無需密碼)
  2. 測試連接成功後,雙擊連接進入
  3. 左側導航選 Server → Users and Privileges
  4. 選中 root@localhost,可視化操作:
    • Account Limits:調整最大連接/查詢/更新數
    • Administrative Roles:勾選 DBA 或全選恢復超級權限
    • Schema Privileges:分配具體庫表權限
    • Change Password:直接設置新密碼
  5. 點擊 Apply 保存
  6. 正常重啟 MySQL 服務(退出 --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目錄擁有者非_mysqlsudo 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 '新密碼';

安全建議

  • 重置後務必設置強密碼(長度≥16、含大小寫數字特殊字符)
  • 禁用Root遠程登錄:UPDATE user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;
  • 創建業務專用賬號,最小權限原則
  • 啟用 validate_password 插件強制密碼策略
  • 定期輪換密碼,記錄於密碼管理器
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved