MYSQL[06]MYSQL鑒權協議的問題

來源:互聯網
上載者:User
Client does not support authentication protocol requested by server

1 -- 錯誤原因分析

今天上線系統時遇到的一個問題:可執行程式使用MySQL4.0.22版本提供的靜態庫編譯,運行時資料庫伺服器是5.0.33版本,當程式真正執行串連資料庫時,曝出下面的錯誤訊息。 Client does not support authentication protocol requested by server; consider upgrading MySQL client

查詢MySQL的協助文檔,它給出這樣的提示 MySQL 5.1 uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. If you upgrade the server from 4.0, attempts to connect to it with an older client may fail with the message

翻譯過來大致原因是MySQL自4.1以後使用了不同的鑒權協議,該協議與4.1之前的版本有著很大的不同。所以如果你的用戶端是4.1之前的版本,那麼在串連高版本的資料庫時就會出現這樣的錯誤。

2 -- 解決方案

1、Upgrade all client programs to use a 4.1.1 or newer client library
升級用戶端程式使用4.1.1或者更高版本的用戶端庫。

2、When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password
串連資料庫時,使用升級以前已經存在的賬戶,這些賬戶使用早於4.1版本的密碼格式。

3、Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program
使用早於4.1版本的密碼格式重新設定賬戶密碼,函數SET PASSWORDOLD_PASSWORD()用來完成修改。可以使用下面的任一方法來重設。
方法1:

mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

方法2:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')-> WHERE Host = 'some_host' AND User = 'some_user';mysql> FLUSH PRIVILEGES;
3 -- 參考資料

1、http://dev.mysql.com/doc/refman/5.1/en/old-client.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.