遺忘 MySQL root 密碼是常見運維情境。本文提供標準、安全的重置流程,適用於 Linux/Unix 環境,Windows 同理。
# 找出 PID 檔位置(通常在資料目錄)
kill `cat /mysql-data-directory/hostname.pid`
kill -9,強制終止可能導致資料檔損壞。safe-mysqld --skip-grant-tables &
此模式下 MySQL 不驗證密碼,任何人可無密碼登入,**務必在安全網路環境下短時間操作**,完成後立即正常重啟。
mysql -h hostname mysql
在 MySQL 提示符下執行任一方式:
-- 方式 A:GRANT 指令(會自動加密)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'newpass';
-- 方式 B:直接更新 user 表
UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
mysqladmin -h hostname flush-privileges
或執行 SQL:FLUSH PRIVILEGES;,然後正常重啟 MySQL 服務。
mysqld --skip-grant-tables 或 mysqld-nt --skip-grant-tables。net stop mysql。data 目錄下。skip-name-resolve 避免 DNS 延遲,並限制 root 僅允許 localhost 連線。Root 密碼重置屬標準運維作業,核心在於優雅停止服務、啟動跳過授權、修改密碼、刷新權限、正常重啟五步驟。平時做好密碼管理(密碼管理器、定期輪換、最小權限原則)才是根本之道。