作者在 Linux 安裝 MySQL 後修改 root 密碼,一小時後即忘記,記錄三種找回方法。
/etc/rc.d/init.d/mysql stop/var/lib/mysql/mysql/:user.frm(結構)、user.MYD(資料)、user.MYI(索引)/etc/rc.d/init.d/mysql startUPDATE user SET Password=PASSWORD('newpwd') WHERE User='root';chown -R mysql:mysql user.*chmod 600 user.*FLUSH PRIVILEGES;DELETE FROM user WHERE User=''; DELETE FROM user WHERE Host='%'; FLUSH PRIVILEGES;缺點: 必須擁有另一套可用的 user.* 檔案。
--skip-grant-tables 略過權限驗證(最常用、官方推薦)killall -TERM mysqld(勿用 kill -9)/usr/bin/mysqld_safe --skip-grant-tables &mysqld --skip-grant-tablesmysql -u rootUSE mysql;UPDATE user SET Password=PASSWORD('newpwd') WHERE User='root';FLUSH PRIVILEGES;mysqladmin -u root password 'newpwd'mysqladmin flush-privilegesuser.MYD直接編輯加密後的密碼字串。但密碼儲存位置可能不連續,且仍需參考既有密碼雜湊值,實務上較不建議。
方法二最通用、無需備份檔案,建議優先採用。平時應妥善保管密碼,或使用密碼管理工具。