首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 忽略用戶錯誤完整排查:密碼長度、協定版本與 PASSWORD() 函數三大成因

     編輯:MySQL 資料庫相關知識

啟動 mysqld 或重載授權表時出現 Found incorrect password for user 'xxx'@'xxx'; ignoring user,表示 user 表有非法密碼帳號被忽略。四大成因與修正:

成因與解決方案

  1. 舊版 user 表搭配新版 mysqld
    執行 mysqlshow mysql user 檢查 Password 欄位是否短於 16 字元。是則執行 add_long_password 腳本修正。
  2. 帳號使用舊式 8 字元密碼,但未啟用 --old-protocol
    方案二擇一:
    ① 更新 user 表密碼為新格式
    ② 啟動加 --old-protocol 參數
  3. 未用 PASSWORD() 函數設定密碼
    必須用函數更新:
    UPDATE user SET Password=PASSWORD('newpwd') WHERE User='some_user' AND Host='some_host';
    FLUSH PRIVILEGES;
    
  4. 權限表損壞或手動修改錯誤
    重建授權表或從備份還原 mysql 系統資料庫。

核心原則

MySQL 5.0+ 使用 41 字元雜湊密碼,舊版 16 字元。混用版本、協定、設定方式不當皆導致此錯誤。統一版本、正確用 PASSWORD()、必要時啟用 --old-protocol 即可避免。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved