killall -TERM mysqld 或 systemctl stop mysqldmysqld_safe --skip-grant-tables &mysql -u rootUPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
[mysqld] 區段加入 skip-grant-tablesskip-grant-tables,重啟服務INSERT INTO mysql.user (Host, User, Password)
VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
建立用戶 jeffrey 密碼 biscuit,擁有完整權限。事後請刪除或降權。
mysqladmin -u root -p password 'newpass'
輸入舊密碼後即可更新。若無法連線 MySQL 則無效,且無法清空密碼。
| MySQL 版本 | 密碼欄位名 | PASSWORD() 函數 |
|---|---|---|
| 5.6 及之前 | Password | 支援 |
| 5.7 / 8.0 | authentication_string | 5.7 支援,8.0 已移除,改用 ALTER USER |
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
FLUSH PRIVILEGES;
mysql_secure_installation 強化設定。