MySQL8.0報(bào)錯(cuò)Public?Key?Retrieval?is?not?allowed的原因及解決方法
這個(gè)問(wèn)題出現(xiàn)原因,我在升級(jí)了mysql之后發(fā)現(xiàn)連mysql時(shí)后臺(tái)報(bào)錯(cuò),報(bào)的就是標(biāo)題這個(gè)錯(cuò),然后就上網(wǎng)查資料,官網(wǎng)文檔機(jī)翻后原因如下:
如果用戶帳戶使用sha256_密碼認(rèn)證,則在傳輸過(guò)程中必須保護(hù)密碼;TLS是這方面的首選機(jī)制,但如果它不可用,則將使用RSA公鑰加密。要指定服務(wù)器的RSA公鑰,請(qǐng)使用ServerRSPublicKeyFile連接字符串設(shè)置,或設(shè)置AllowPublicKeyRetrieval=True以允許客戶端自動(dòng)從服務(wù)器請(qǐng)求公鑰。請(qǐng)注意,AllowPublicKeyRetrieval=True可能允許惡意代理執(zhí)行MITM攻擊以獲取明文密碼,因此默認(rèn)為False,必須顯式啟用。
大概意思就是mysql賬號(hào)的密碼是用的sha256方式加密,而客戶端連接mysql的時(shí)候并非使用TLS協(xié)議傳輸參數(shù),那么需要客戶端使用RSA算法公鑰加密傳輸參數(shù),而服務(wù)端默認(rèn)是不允許客戶端獲取公鑰,需要開(kāi)啟這個(gè)開(kāi)關(guān)。
知道原因后解決方式:
方式一:
客戶端的驅(qū)動(dòng)連接參數(shù)中增加:allowPublicKeyRetrieval=true&useSSL=false
1、右鍵編輯連接

2、點(diǎn)擊驅(qū)動(dòng)屬性,找到allowPublicKeyRetrieval,把false改為true

3、最后重新啟動(dòng)
方式二:
之前我在修改mysql的root用戶的時(shí)候直接使用的語(yǔ)句是:alter user 'root'@'localhost' identified by 'xxx'; 所以mysql默認(rèn)使用sha_256加密了。
現(xiàn)在修改mysql賬號(hào)的密碼,使用其他的加密方式,直接修改賬號(hào)密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
這樣問(wèn)題就解決了,另外,修改用戶host語(yǔ)句附上:
use mysql;
update user set host='%' where user='root';
這樣mysql就可以遠(yuǎn)程登陸了。
以上就是MySQL8.0報(bào)錯(cuò)Public Key Retrieval is not allowed的原因及解決方法的詳細(xì)內(nèi)容,更多關(guān)于MySQL Public Key Retrieval is not allowed的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 詳解mysql8.0創(chuàng)建用戶授予權(quán)限報(bào)錯(cuò)解決方法
- 解決MySql8.0 查看事務(wù)隔離級(jí)別報(bào)錯(cuò)的問(wèn)題
- MySQL8.0.27安裝過(guò)程中卡在Initializing?Database中并報(bào)錯(cuò)的解決
- SQLyog連接MySQL8.0+報(bào)錯(cuò):錯(cuò)誤號(hào)碼2058的解決方案
- 解決MySQL8.0報(bào)錯(cuò)Client does not support authentication protocol requested by server...問(wèn)題
相關(guān)文章
MySQL中substr函數(shù)使用方法實(shí)例詳解
MySQL的SUBSTR()函數(shù)可以用于從指定字符串的指定位置開(kāi)始提取指定長(zhǎng)度的字符,下面這篇文章主要給大家介紹了關(guān)于MySQL中substr函數(shù)使用方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
mysql下優(yōu)化表和修復(fù)表命令使用說(shuō)明(REPAIR TABLE和OPTIMIZE TABLE)
隨著mysql的長(zhǎng)期使用,肯定會(huì)出現(xiàn)一些問(wèn)題,一般情況下mysql表無(wú)法訪問(wèn),就可以修復(fù)表了,優(yōu)化時(shí)減少磁盤占用空間。方便備份。2011-01-01
mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段
這篇文章主要介紹了mysql如何修改表結(jié)構(gòu)(alter table),多列/多字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
MySql使用mysqldump 導(dǎo)入與導(dǎo)出方法總結(jié)
這篇文章主要介紹了MySql使用mysqldump 導(dǎo)入與導(dǎo)出方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
mysql中engine=innodb和engine=myisam的區(qū)別介紹
MyISAM類型不支持事務(wù)處理等高級(jí)處理,而InnoDB類型支持,本文為大家講解下mysql中engine=innodb和engine=myisam的區(qū)別,不懂的朋友可以學(xué)習(xí)下,希望對(duì)大家有所幫助2013-07-07

