確保擁有系統最高權限,才能控制 MySQL 服務。
mysql.server stop
mysqld_safe --skip-grant-tables --skip-networking &
參數說明:
--skip-grant-tables:略過權限驗證,允許無密碼登入。--skip-networking:不監聽 TCP/IP 連線,僅允許本地 socket 連線,提升安全性。&:放入背景執行。mysql
USE mysql;
UPDATE user SET password=PASSWORD('新密碼') WHERE user='root';
注意: MySQL 5.0 使用 PASSWORD() 函數加密;5.7+ 版本請改用 authentication_string 欄位。
關閉目前跳過權限的執行個體,以正常模式啟動:
mysqladmin shutdown
mysql.server start
MySQL 5.0 之後,safe_mysqld 已更名為 mysqld_safe。若找不到指令,請至 MySQL 安裝目錄(通常在 /usr/local/mysql/bin/ 或 /usr/bin/)尋找正確的執行檔名稱。
find / -name \"mysqld_safe\" 2>/dev/null 定位。ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';。完成上述步驟即可成功重置 MySQL 5.0 root 密碼,建議重置後立即驗證新密碼登入並檢查使用者權限設定。