一、背景描述
Java Spring Boot 項(xiàng)目啟動時連接數(shù)據(jù)庫控制臺報(bào)錯:
Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed
二、解決方案
在MySQL官方網(wǎng)站里的一個 MySQL Forums 下找到了解決方案。解決方案如下:
將下面的keyValue添加到 spring.datasource.url 后面即可。
allowPublicKeyRetrieval=true
如下圖所示:
三、原因分析
可以查看官方文檔:MySqlConnector -> Connection Options -> Other Options
翻譯過來就是:
如果用戶使用 sha256_password 認(rèn)證,密碼在傳輸過程中必須使用 TLS 協(xié)議保護(hù),但是如果 RSA 公鑰不可用,可以使用服務(wù)器提供的公鑰;可以在連接中通過 ServerRSAPublicKeyFile 指定服務(wù)器的 RSA 公鑰,或者 AllowPublicKeyRetrieval=True 參數(shù)以允許客戶端從服務(wù)器獲取公鑰;但是需要注意的是 AllowPublicKeyRetrieval=True 可能會導(dǎo)致惡意的代理通過中間人攻擊(MITM)獲取到明文密碼,所以默認(rèn)是關(guān)閉的,必須顯式開啟。文章來源:http://www.zghlxwxcb.cn/news/detail-637474.html
本文完結(jié)!文章來源地址http://www.zghlxwxcb.cn/news/detail-637474.html
到了這里,關(guān)于【MySQL異常解決】Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!