新裝 MySQL,執行 mysqladmin password '123' 後無法登入(無論輸入密碼與否)。
mysqladmin password 依賴現有權限表結構;若權限表異常或版本不匹配(MySQL 5.7+ authentication_string 欄位),直接修改失效。
systemctl stop mysqldmysqld_safe --skip-grant-tables &mysql -u root -p
-- 直接 Enter
USE mysql;
-- MySQL 5.7+
UPDATE user SET authentication_string=PASSWORD('newpass') WHERE User='root';
-- 5.6 舊版
UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
systemctl restart mysqldmysql -u root -p'newpass'ALTER USER 語法ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
-- 或支援 caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass123!';
mysql_secure_installation 互動式安全初始化。mysqladmin password,改用 ALTER USER 或 SET PASSWORD。admin@%)。