MySQL用戶端不支援評鑑協議的解決方案

來源:互聯網
上載者:User

  MySQL 5.1採用了基於密碼混編演算法的評鑑協議,它與早期用戶端(4.1之前)使用的協議不相容。如果你將伺服器升級到4.1之上,用早期的用戶端進行串連可能失敗,並給出下述訊息:

shell> mysql

  用戶端不支援伺服器請求的評鑑協議:請考慮升級MySQL用戶端。

  要想解決該問題,應使用下述方法之一:

  ·升級所有的用戶端程式,以使用4.1.1或更新的用戶端庫。

  ·用4.1版之前的用戶端串連到伺服器時,請使用仍具有4.1版之前風格密碼的賬戶。

  ·對於需要使用4.1版之前的用戶端的每位使用者,將密碼恢複為4.1版之前的風格。可以使用SET PASSWORD語句和OLD_PASSWORD()函數完成該任務:

·mysql> SET PASSWORD FOR·-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');也可以使用UPDATE和FLUSH PRIVILEGES:mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')-> WHERE Host = 'some_host' AND User = 'some_user';mysql> FLUSH PRIVILEGES;

  用你打算使用的密碼替換前例中的“newpwd”。MySQL不能告訴你原來的密碼是什麼,因此,你需要選擇新的密碼。

  ·通知伺服器使用舊的密碼混編演算法:

  1.使用“--old-passwords”選項啟動mysqld。

  2.對於已將密碼更新為較長4.1格式的每個賬戶,為其指定具有舊格式的密碼。可以使用下述查詢確定這些賬戶:

  3.

mysql> SELECT Host, User, Password FROM mysql.user

  4.

-> WHERE LENGTH(Password) > 16;

  對於查詢顯示的每個賬戶記錄,請使用Host和User值,並使用OLD_PASSWORD()函數以及SET PASSWORD或UPDATE之一指定密碼,如前面所介紹的那樣。

  注釋:在早期的PHP版本中,mysql擴充不支援MySQL 4.1.1和更高版中的評鑑協議。無論使用的PHP版本是什麼,它均是正確的。如果你打算與MySQL 4.1或更高版本一起使用mysql擴充,需要使用前面介紹的選項之一,配置MySQL,以便與較早的用戶端一起使用。mysqli擴充(支援“改進的MySQL”,在PHP 5中增加)與MySQL 4.1和更高版本中使用的改進的密碼混編演算法相容,不需要對MySQL進行特殊配置就能使用該MySQL用戶端庫。

        :更多精彩教程請關注三聯圖文教程 頻道,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.