遺忘 MySQL root 密碼是常見維運情境。本文提供 Windows 與 Linux 兩大平台的標準重置流程,以及通用的備選方案。
services.msc → 找到 MySQL → 停止C:\mysql-init.txt,內容單行:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
若使用安裝精靈,需指定預設檔:
C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld-nt.exe
--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini"
--init-file=C:\mysql-init.txt
可從服務屬性的「執行檔路徑」找到正確的 --defaults-file 參數。
mysql-init.txt.pid 檔(常見路徑:/var/lib/mysql/、/var/run/mysqld/、/usr/local/mysql/data/,檔名通常為 mysqld.pid 或 hostname.pid)kill -9):
kill `cat /path/to/mysqld.pid`
注意:反引號 ` 非單引號
~/mysql-init,內容同 Windowsmysqld_safe --init-file=~/mysql-init &
~/mysql-init--skip-grant-tables --user=root 重啟(Windows 可省略 --user=root)mysql -u rootUPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;
--skip-grant-tables 會跳過所有權限檢查,僅限內網維護窗口使用掌握標準重置流程,能在緊急情況下快速恢復資料庫存取權限。