mysql 連接出現(xiàn)Public Key Retrieval is not allowed的問題解決
在MySQL連接中出現(xiàn)“Public Key Retrieval is not allowed”錯誤,通常是因為在使用安全套接字層(SSL)連接時遇到了問題。這是因為MySQL 8.0及以上版本對安全性要求更高,特別是在使用密碼插件如caching_sha2_password
時,默認要求加密通信,并且不允許通過不安全的方式獲取服務(wù)器的公鑰。
解決這個問題的方法有以下幾種:
允許公鑰檢索:
在客戶端連接字符串或配置文件中設(shè)置 allowPublicKeyRetrieval=true
。但請注意,這僅用于測試和臨時解決方案,因為它會降低連接的安全性。在生產(chǎn)環(huán)境中應(yīng)避免此做法,而是確保正確配置了SSL。
String url = "jdbc:mysql://yourserver:3306/database?useSSL=true&allowPublicKeyRetrieval=true&serverTimezone=UTC";
啟用SSL并提供正確的信任證書:
- 在服務(wù)器端配置MySQL以支持SSL連接。
- 客戶端需要有與服務(wù)器匹配的CA證書,將其添加到客戶端的信任存儲中。
- 更新客戶端連接URL以包含SSL選項:
useSSL=true
并可能需要指定sslTrustStore
和sslTrustStorePassword
參數(shù)。
更改MySQL服務(wù)器上的用戶密碼插件:
如果你希望保持高安全性但又想簡化連接過程,可以將MySQL服務(wù)器上的用戶密碼插件改為 mysql_native_password
。這樣,客戶端無需進行復(fù)雜的SSL配置即可連接,但這意味著放棄了新版本MySQL默認提供的更強密碼安全策略。
執(zhí)行如下命令來更改用戶密碼插件:
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
請根據(jù)實際情況選擇合適的方法解決問題,并始終優(yōu)先考慮生產(chǎn)環(huán)境中的數(shù)據(jù)安全性。
到此這篇關(guān)于mysql 連接出現(xiàn)Public Key Retrieval is not allowed的問題解決的文章就介紹到這了,更多相關(guān)mysql連接問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql單文件存儲刪除數(shù)據(jù)文件容量不會減少的bug與解決方法
這篇文章主要給大家介紹了Mysql單文件存儲刪除數(shù)據(jù)文件時容量不會減少的bug與解決方法,文中給出了詳細的解決方法,相信對遇到這個問題的朋友們能帶來一定的幫助,下面來一起看看吧。2016-12-12SQLyog錯誤號碼MySQL?plugin?caching_sha2_password?could?not?
這篇文章主要介紹了SQLyog錯誤號碼?plugin?caching_sha2_password?could?not?be?loaded的解決方法,需要的朋友可以參考下2023-06-06SQLyog連接不上mysql問題的解決方法(按照步驟,包解決)
這篇文章主要介紹了SQLyog連接不上mysql問題的解決方法,文中給大家分析了SQLyog連接不上mysql的幾種原因,并通過圖文結(jié)合的方式給大家講解的非常詳細,需要的朋友可以參考下2024-03-03MySQL入門完全指南及Linux系統(tǒng)下基本的安裝教程
這篇文章主要介紹了MySQL入門完全指南及Linux系統(tǒng)下基本的安裝教程,對MySQL的基本特性有一個較為詳細的整理,需要的朋友可以參考下2015-11-11史上最簡單的MySQL數(shù)據(jù)備份與還原教程(上)(三十五)
這篇文章主要為大家詳細介紹了史上最簡單的MySQL數(shù)據(jù)備份與還原教程第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10