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

macOS 環境下 MySQL Root 密碼初始化與重置全攻略

     編輯:MySQL 綜合教學

macOS 環境下 MySQL Root 密碼初始化與重置全攻略

在 macOS 上安裝 MySQL 後,若忘記 root 密碼或需初始化,可通過跳過權限表啟動來重置。本文整理了針對 MySQL 5.7 不同版本的標準化操作流程。

前置準備:停止 MySQL 服務

  1. 打開「系統偏好設置」→ 最下方「MySQL」面板。
  2. 點擊「Stop MySQL Server」關閉服務。

核心步驟:建立初始化腳本並啟動跳過權限模式

1. 建立初始化 SQL 文件

創建文件 mysql-init(路徑自定,如 /tmp/mysql-init),根據 MySQL 版本寫入對應語句:

  • MySQL 5.7.6 及以上:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
  • MySQL 5.7.5 及以下:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密碼');

2. 以跳過權限表模式啟動 MySQL

cd /usr/local/mysql/bin/
sudo su
# 方式一:使用 init-file 參數(推薦)
mysqld_safe --init-file=/tmp/mysql-init &

# 方式二:手動操作(若方式一失效)
mysqld_safe --skip-grant-tables &
./mysql -u root

3. 手動模式下的具體操作(方式二後續)

mysql> FLUSH PRIVILEGES;
mysql> UPDATE mysql.user 
       SET authentication_string = PASSWORD('新密碼'), 
           password_expired = 'N' 
       WHERE user = 'root' AND host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> QUIT;

4. 驗證新密碼

./mysql -u root -p
# 輸入剛設定的新密碼,登入成功即完成重置

關鍵參數說明

參數作用
--init-file啟動時自動執行指定 SQL 文件,實現無感重置
--skip-grant-tables跳過權限檢查,允許無密碼登入修改權限表
FLUSH PRIVILEGES重新載入授權表,使修改即時生效
password_expired = 'N'防止新密碼被標記為過期,導致首次登入需強制修改

常見坑點提醒

  • 權限不足:務必使用 sudo su 切換到 root 執行 mysqld_safe。
  • 進程殘留:啟動前確認無其他 mysqld 進程,否則端口衝突。
  • 版本差異:5.7.6+ 棄用 PASSWORD() 函數,必須用 ALTER USER。

參考官方文檔:Resetting the Root Password: Unix and Unix-Like Systems

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