SpringBoot從Nacos讀取MySQL數(shù)據(jù)庫(kù)配置錯(cuò)誤:Public Key Retrieval is not allowed的解決方案
前言
最近的項(xiàng)目,突然都從MySQL5.7升級(jí)到8.0了。
有些項(xiàng)目能運(yùn)行成功,有些項(xiàng)目遇到了問(wèn)題,啟動(dòng)不成功,顯示數(shù)據(jù)庫(kù)方面的異常信息。
1、問(wèn)題描述
在連接到MySQL數(shù)據(jù)庫(kù)的時(shí)候,報(bào)錯(cuò)內(nèi)容如下:“Public Key Retrieval is not allowed”。
翻譯一下報(bào)錯(cuò)異常信息:使用springframework.jdbc包,不能獲取JDBC連接,PublicKeyRetrieval不支持。

2、解決過(guò)程
mysql 8.0 默認(rèn)使用 caching_sha2_password 身份驗(yàn)證機(jī)制 (即從原來(lái)mysql_native_password 更改為 caching_sha2_password。)
從 5.7 升級(jí) 8.0 版本的不會(huì)改變現(xiàn)有用戶的身份驗(yàn)證方法,但新用戶會(huì)默認(rèn)使用新的 caching_sha2_password 。 客戶端不支持新的加密方式。 因此我們需要修改用戶的密碼和加密方式。
方案一:
在命令行模式下進(jìn)入mysql,輸入以下命令就可以解決問(wèn)題了:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
或者
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
方案二:
如果我們沒(méi)有MySQL的管理權(quán)限,那么只需在配置數(shù)據(jù)源的時(shí)候直接將屬性allowPublicKeyRetrieval設(shè)置為true即可。

# spring配置
spring:
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
datasource:
# 主庫(kù)數(shù)據(jù)源
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/xxxdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true
username: root
password: root
總結(jié)
實(shí)際工作中會(huì)遇到各種奇怪的問(wèn)題,把問(wèn)題記錄下來(lái),能幫助自己以后便捷的查找解決方,同時(shí)也希望可以幫到大家。
到此這篇關(guān)于SpringBoot從Nacos讀取MySQL數(shù)據(jù)庫(kù)配置錯(cuò)誤:Public Key Retrieval is not allowed的解決方案的文章就介紹到這了,更多相關(guān)SpringBoot Nacos讀取MySQL報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成EasyExcel實(shí)現(xiàn)百萬(wàn)級(jí)別的數(shù)據(jù)導(dǎo)入導(dǎo)出實(shí)踐指南
本文將基于開(kāi)源項(xiàng)目 springboot-easyexcel-batch 進(jìn)行解析與擴(kuò)展,手把手教大家如何在 Spring Boot 2.2.1 中集成 Alibaba EasyExcel,輕松實(shí)現(xiàn)百萬(wàn)級(jí)數(shù)據(jù)的導(dǎo)入與導(dǎo)出2025-08-08
Mybatis-Plus設(shè)置全局或者局部ID自增的實(shí)現(xiàn)
在使用Mybatis-Plus新增的時(shí)候,我們往往想要id隨著數(shù)據(jù)庫(kù)自增,本文主要介紹了Mybatis-Plus設(shè)置全局或者局部ID自增的實(shí)現(xiàn),具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
mybatis之調(diào)用帶輸出參數(shù)的存儲(chǔ)過(guò)程(Oracle)
這篇文章主要介紹了mybatis調(diào)用帶輸出參數(shù)的存儲(chǔ)過(guò)程(Oracle),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
springboot+mybatis-plus+oracle實(shí)現(xiàn)邏輯刪除
最近在做一個(gè)前后端分離的小項(xiàng)目,需要?jiǎng)h除用戶表的用戶,本文主要實(shí)現(xiàn)了springboot+mybatis-plus+oracle邏輯刪除,具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08
Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能詳解
這篇文章主要介紹了Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能,結(jié)合實(shí)例形式分析了java使用正則表達(dá)式針對(duì)xml文件節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Linux下Java Python啟動(dòng)管理腳本方便程序管理
這篇文章主要為大家介紹了Linux下Java/Python啟動(dòng)管理腳本方便程序管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Spring源碼之事件監(jiān)聽(tīng)機(jī)制詳解(@EventListener實(shí)現(xiàn)方式)
這篇文章主要介紹了Spring源碼之事件監(jiān)聽(tīng)機(jī)制(@EventListener實(shí)現(xiàn)方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Spring?Boot中@Autowired注入為空的原因以及解決方法
最近在開(kāi)發(fā)中遇到了使用@Autowired注解自動(dòng)裝配時(shí)會(huì)報(bào)空指針,發(fā)現(xiàn)對(duì)象并沒(méi)有裝配進(jìn)來(lái),下面這篇文章主要給大家介紹了關(guān)于Spring?Boot中@Autowired注入為空的原因以及解決方法,需要的朋友可以參考下2024-01-01
JavaScript裝飾器從基礎(chǔ)到實(shí)戰(zhàn)教程
裝飾器是js中一種聲明式語(yǔ)法特性,用于在不修改原始代碼的情況下,動(dòng)態(tài)擴(kuò)展類(lèi)、方法、屬性或參數(shù)的行為,本文將從基礎(chǔ)概念入手,逐步講解裝飾器的類(lèi)型、用法、進(jìn)階技巧及實(shí)戰(zhàn)場(chǎng)景,感興趣的朋友跟隨小編一起看看吧2025-11-11

