整理 Windows 與 Linux 通用的 root 密碼修改方法,包含正常修改、配置文件跳過授權、命令行跳過授權、服務註冊修復等實戰場景。
# 方法 1:mysqladmin
mysqladmin -u root -p'oldpass' password 'newpass'
# 方法 2:SQL 語句
mysql -u root -p'oldpass'
mysql> USE mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
/etc/my.cnf 或 my.ini),[mysqld] 區添加 skip-grant-tables。mysql -u root mysql。UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root'; FLUSH PRIVILEGES;。skip-grant-tables,重啟服務恢復正常認證。systemctl stop mysqld / net stop mysql。mysqld --skip-grant-tables --skip-networking & # Linux
mysqld --skip-grant-tables --skip-networking # Windows (另開窗口)
若安裝後服務啟動失敗,嘗試重新註冊服務:
# 以管理員身份運行 CMD
mysqld --remove MySQL # 移除舊服務(服務名查看 services.msc)
mysqld --install MySQL # 重新安裝服務
net start MySQL # 啟動服務
或在「服務」管理器中將服務登錄身份改為本地賬戶並設置密碼。
Password -> authentication_string。ALTER USER:ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';(自動刷新權限)。caching_sha2_password,舊客戶端需指定 mysql_native_password。UPDATE user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;。已知密碼用 ALTER USER/mysqladmin;遺忘密碼用 skip-grant-tables(配置文件法或命令行法)緊急重置;Windows 服務異常嘗試重新註冊。熟練掌握三種模式,應對所有密碼管理場景。