明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

怎么處理MySQL的客戶端不支持鑒定協(xié)議

[摘要]MySQL 5.1采用了基于密碼混編算法的鑒定協(xié)議,它與早期客戶端(4.1之前)使用的協(xié)議不兼容。如果你將服務(wù)器升級(jí)到4.1之上,用早期的客戶端進(jìn)行連接可能失敗,并給出下述消息: 以下為引用的內(nèi)容:...

MySQL 5.1采用了基于密碼混編算法的鑒定協(xié)議,它與早期客戶端(4.1之前)使用的協(xié)議不兼容。如果你將服務(wù)器升級(jí)到4.1之上,用早期的客戶端進(jìn)行連接可能失敗,并給出下述消息:

以下為引用的內(nèi)容:
shell> mysql

客戶端不支持服務(wù)器請(qǐng)求的鑒定協(xié)議:請(qǐng)考慮升級(jí)MySQL客戶端。

要想解決該問(wèn)題,應(yīng)使用下述方法之一:

·升級(jí)所有的客戶端程序,以使用4.1.1或更新的客戶端庫(kù)。

·用4.1版之前的客戶端連接到服務(wù)器時(shí),請(qǐng)使用仍具有4.1版之前風(fēng)格密碼的賬戶。

·對(duì)于需要使用4.1版之前的客戶端的每位用戶,將密碼恢復(fù)為4.1版之前的風(fēng)格。可以使用SET PASSWORD語(yǔ)句和OLD_PASSWORD()函數(shù)完成該任務(wù):

以下為引用的內(nèi)容:
·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不能告訴你原來(lái)的密碼是什么,因此,你需要選擇新的密碼。

·通知服務(wù)器使用舊的密碼混編算法:

1.使用"--old-passwords"選項(xiàng)啟動(dòng)mysqld。

2.對(duì)于已將密碼更新為較長(zhǎng)4.1格式的每個(gè)賬戶,為其指定具有舊格式的密碼?梢允褂孟率霾樵兇_定這些賬戶:

以下為引用的內(nèi)容:

3.

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

-> WHERE LENGTH(Password) > 16;

對(duì)于查詢顯示的每個(gè)賬戶記錄,請(qǐng)使用Host和User值,并使用OLD_PASSWORD()函數(shù)以及SET PASSWORD或UPDATE之一指定密碼,如前面所介紹的那樣。

注釋:在早期的PHP版本中,MySQL擴(kuò)展不支持MySQL 4.1.1和更高版中的鑒定協(xié)議。無(wú)論使用的PHP版本是什么,它均是正確的。如果你打算與MySQL 4.1或更高版本一起使用mysql擴(kuò)展,需要使用前面介紹的選項(xiàng)之一,配置MySQL,以便與較早的客戶端一起使用。mysqli擴(kuò)展(支持"改進(jìn)的MySQL",在PHP 5中增加)與MySQL 4.1和更高版本中使用的改進(jìn)的密碼混編算法兼容,不需要對(duì)MySQL進(jìn)行特殊配置就能使用該MySQL客戶端庫(kù)。

關(guān)鍵詞標(biāo)簽:鑒定,協(xié)議,支持,客戶端

學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。