[Warning] Found wrong password for user 'some_user'@'some_host'; ignoring user
啟動或 FLUSH PRIVILEGES 時出現,該帳號無法登入。
| 原因 | 檢查方式 | 修復方案 |
|---|---|---|
| 1. 密碼欄位長度不足 (舊版升級) | SHOW COLUMNS FROM mysql.user LIKE 'Password'; 長度 < 41 | 執行 mysql_upgrade 或手動 ALTER TABLE mysql.user MODIFY Password CHAR(41); |
| 2. 使用舊 4.1 前密碼格式 (16 字元) | SELECT User, Host, Length(Password) FROM mysql.user WHERE Length(Password) = 16; | 更新密碼:SET PASSWORD FOR 'user'@'host' = PASSWORD('newpwd'); 或啟動加 --old-protocol (不推薦) |
| 3. 直接寫入明文密碼未用 PASSWORD() | SELECT Password FROM mysql.user WHERE User='user'; 非 * 開頭雜湊 | UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='user' AND Host='host'; FLUSH PRIVILEGES; |
*... (SHA1(SHA1(password)))。authentication_string 欄位,支援 caching_sha2_password (預設)、mysql_native_password。FLUSH PRIVILEGES;
SELECT User, Host, plugin, authentication_string FROM mysql.user WHERE User='some_user';
-- 嘗試登入
mysql -u some_user -p
INSERT/UPDATE mysql.user 繞過 PASSWORD() 或 SET PASSWORD。mysql_upgrade 同步系統表結構。mysql_native_password,全面遷移 caching_sha2_password (需客戶端 8.0+ 支援)。