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)目遇到了問題,啟動(dòng)不成功,顯示數(shù)據(jù)庫(kù)方面的異常信息。
1、問題描述
在連接到MySQL數(shù)據(jù)庫(kù)的時(shí)候,報(bào)錯(cuò)內(nèi)容如下:“Public Key Retrieval is not allowed”。
翻譯一下報(bào)錯(cuò)異常信息:使用springframework.jdbc包,不能獲取JDBC連接,PublicKeyRetrieval不支持。
2、解決過程
mysql 8.0 默認(rèn)使用 caching_sha2_password 身份驗(yàn)證機(jī)制 (即從原來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,輸入以下命令就可以解決問題了:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
或者
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
方案二:
如果我們沒有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ì)遇到各種奇怪的問題,把問題記錄下來,能幫助自己以后便捷的查找解決方,同時(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)文章
Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系
這篇文章主要為大家詳細(xì)介紹了Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10淺談java中String StringBuffer StringBuilder的區(qū)別
下面小編就為大家?guī)硪黄獪\談java中String StringBuffer StringBuilder的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06Java使用mapstruct實(shí)現(xiàn)對(duì)象拷貝
MapStruct可以簡(jiǎn)化對(duì)象之間的映射,本文就來介紹一下Java使用mapstruct實(shí)現(xiàn)對(duì)象拷貝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12詳解Spring Boot使用系統(tǒng)參數(shù)表提升系統(tǒng)的靈活性
Spring Boot項(xiàng)目中常有一些相對(duì)穩(wěn)定的參數(shù)設(shè)置項(xiàng),其作用范圍是系統(tǒng)級(jí)的或模塊級(jí)的,這些參數(shù)稱為系統(tǒng)參數(shù)。這些變量以參數(shù)形式進(jìn)行配置,從而提高變動(dòng)和擴(kuò)展的靈活性,保持代碼的穩(wěn)定性2021-06-06java 中設(shè)計(jì)模式(裝飾設(shè)計(jì)模式)的實(shí)例詳解
這篇文章主要介紹了java 中設(shè)計(jì)模式(裝飾設(shè)計(jì)模式)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09Spring?MVC策略模式之MethodArgumentResolver源碼解析
這篇文章主要為大家介紹了Spring?MVC策略模式之MethodArgumentResolver源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03java批量采集豌豆莢網(wǎng)站Android應(yīng)用圖標(biāo)和包名
這篇文章主要介紹了java批量采集豌豆莢網(wǎng)站Android應(yīng)用圖標(biāo)和包名,主要用在做主題時(shí)替換這些常見應(yīng)用的圖片,需要的朋友可以參考下2014-06-06