整理四種修改 MySQL root 密碼的方式,涵蓋正常修改與跳過權限表的緊急重置,適用 MySQL 5.6+(其他版本大同小異)。
mysql -u root -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
# 首次設密(原無密碼)
mysqladmin -u root password "newpass"
# 已有密碼時修改
mysqladmin -u root -p oldpass password "newpass"
mysql -u root -p
mysql> USE mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
systemctl stop mysqld 或 net stop mysql。mysqld_safe --skip-grant-tables --skip-networking &
--skip-networking 禁止網絡連接,提升安全性。
mysql -u root mysql。UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
FLUSH PRIVILEGES;
Password 列改名為 authentication_string,更新語句需調整:UPDATE user SET authentication_string = PASSWORD('newpass') WHERE User = 'root';caching_sha2_password,若客戶端不支援,可改用 mysql_native_password:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpass';mysql -u root -p'newpass' -e "SELECT 1;"。FLUSH PRIVILEGES; 或重啟服務生效。正常場景用 SET PASSWORD 或 mysqladmin;忘記密碼用 --skip-grant-tables 緊急重置。掌握兩套流程,應對所有密碼管理場景。