MySQL root密碼修改是運維高頻操作。本文匯總四大標準方法,覆蓋正常修改、命令行工具、直接改表、忘記密碼跳過授權表四大場景,附Windows/Linux通用步驟。
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
-- 或 8.0+ 推薦
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
mysqladmin -u root -p'oldpass' password 'newpass'
# 例:mysqladmin -u root -p123456 password 123
注意:舊密碼緊跟-p無空格;特殊字符需轉義或用配置文件。
mysql> USE mysql;
mysql> UPDATE user SET authentication_string = PASSWORD('newpass')
WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
版本差異:5.7欄位為authentication_string,5.6為password,8.0+建議用ALTER USER。
net stop mysqlmysqld --skip-grant-tables --console(新開CMD窗口,保持運行)mysql -u rootUSE mysql;
UPDATE user SET authentication_string = PASSWORD('123') WHERE User = 'root';
FLUSH PRIVILEGES;
--skip-grant-tables窗口,正常啟動服務:net start mysqlsystemctl stop mysqld/etc/my.cnf,[mysqld]段添加skip-grant-tablessystemctl start mysqldmysql -u root 免密進入,執行UPDATE+FLUSH PRIVILEGESskip-grant-tables,systemctl restart mysqld-- 8.0.16+ 支援
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass' PASSWORD EXPIRE NEVER;
-- 或直接
UPDATE mysql.user SET authentication_string = NULL, password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
mysql_secure_installation:移除匿名用戶、禁止root遠程登入、刪除test庫VALIDATE_PASSWORD插件localhost或特定IP登入掌握四大方法,尤其「跳過授權表」急救流程,讓密碼遺失不再是事故。