MySQL 密碼管理是 DBA 基礎技能。本文匯總三種標準修改密碼方法,並詳細記錄 Root 密碼遺忘時的緊急重置流程(含 skip-grant-tables 模式),經多版本驗證可靠。
mysql -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
MySQL 5.7+ 建議使用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
# 首次設定或已知舊密碼
mysqladmin -u root password "newpass"
# 已有密碼時修改
mysqladmin -u root -p'oldpass' password "newpass"
mysql -u root -p
USE mysql;
UPDATE user SET authentication_string = PASSWORD('newpass') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
注意:MySQL 5.7+ 密碼欄位為 authentication_string,5.6 及之前為 Password。
vi /etc/my.cnf
# 在 [mysqld] 區段新增
skip-grant-tables
systemctl restart mysqld
# 或 service mysqld restart
mysql -u root
USE mysql;
# MySQL 5.7+
UPDATE user SET authentication_string = PASSWORD('newpass') WHERE User = 'root';
# MySQL 5.6-
UPDATE user SET Password = PASSWORD('newpass') WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;
vi /etc/my.cnf
# 刪除或註釋 skip-grant-tables
systemctl restart mysqld
mysql -u root -p'newpass' -e "SELECT 1;" # 驗證新密碼生效
bind-address=127.0.0.1 限制本地訪問,操作完成立即恢復。