使用 Java 連接 MySQL 時,為什麼會出現「不允許公鑰檢索」錯誤?
Nov 01, 2024 pm 05:20 PMMySQL 連線錯誤:「不允許公鑰擷取」
嘗試使用 Java 的 MySQL Connector 8.0 連線到 MySQL 資料庫時。 11、您可能會遇到以下異常:
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
此錯誤表示客戶端正在嘗試從伺服器檢索公鑰,但連線尚未配置為允許這樣做。
解決方案
要解決此問題,您需要將allowPublicKeyRetrieval=true 用戶端選項新增至連線字串中。這將允許客戶端自動從伺服器請求公鑰。但是,請務必注意,將此選項設為 true 可能會允許惡意代理執行 MITM 攻擊以取得明文密碼。
具有AllowPublicKeyRetrieval 的範例連線管理員
以下程式碼片段更新ConnectionManager 類別中的get 方法以包含allowedPublicKey
<code class="java">public static Connection getConnection() throws SQLException {
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUseSSL(false);
dataSource.setServerTimezone(serverTimeZone);
dataSource.setServerName(serverName);
dataSource.setDatabaseName(databaseName);
dataSource.setPortNumber(portNumber);
dataSource.setUser(user);
dataSource.setPassword(password);
dataSource.setAllowPublicKeyRetrieval(true); // Allow public key retrieval
return dataSource.getConnection();
}</code>
<code class="java">jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false</code>
以上是使用 Java 連接 MySQL 時,為什麼會出現「不允許公鑰檢索」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
