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)是不允許客戶端獲取公鑰,需要開啟這個(gè)開關(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遞歸查詢的3種實(shí)現(xiàn)方式實(shí)例
在項(xiàng)目中會(huì)遇到同一個(gè)表中保存著父子關(guān)系的數(shù)據(jù),最常見的就是處理樹形結(jié)構(gòu)資源,下面這篇文章主要給大家介紹了關(guān)于MySQL遞歸查詢的3種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04如何通過(guò)sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn)(以mysql為例)
這篇文章主要給大家介紹了關(guān)于如何通過(guò)sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn),本文以mysql為例,項(xiàng)目中遇到一個(gè)需求,要求查處菜單節(jié)點(diǎn)的所有節(jié)點(diǎn),這里給大家總結(jié)下,需要的朋友可以參考下2023-08-08MySQL刪除數(shù)據(jù)后自增主鍵ID不連貫問(wèn)題及解決
這篇文章主要介紹了MySQL刪除數(shù)據(jù)后自增主鍵ID不連貫問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09Mysql使用函數(shù)json_extract處理Json類型數(shù)據(jù)的方法實(shí)例
在日常業(yè)務(wù)開發(fā)中通常mysql數(shù)據(jù)庫(kù)中某個(gè)字段會(huì)需要存儲(chǔ)json格式字符串,下面這篇文章主要給大家介紹了關(guān)于Mysql使用函數(shù)json_extract處理Json類型數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-09-09MySQL分組查詢Group By實(shí)現(xiàn)原理詳解
在MySQL 中,GROUP BY 的實(shí)現(xiàn)同樣有多種(三種)方式,其中有兩種方式會(huì)利用現(xiàn)有的索引信息來(lái)完成 GROUP BY,另外一種為完全無(wú)法使用索引的場(chǎng)景下使用。下面我們分別針對(duì)這三種實(shí)現(xiàn)方式做一個(gè)分析2016-05-05