連接Java - MySQL:解決「不允許公鑰檢索」異常
嘗試使用以下方式建立與MySQL 資料庫的連接時Java和8.0.11 連接器,使用者可能會遇到以下異常:
<code class="java">Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed</code>
解決方案:
此異常表明客戶端正在嘗試檢索公共來自伺服器的密鑰,但不允許檢索公鑰。要解決此問題,我們需要透過在 MySQL 連接字串中新增 allowedPublicKeyRetrieval=true 選項來明確允許公鑰檢索。
修改的連線管理器類別:
<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 ); // Allow public key retrieval dataSource.setAllowPublicKeyRetrieval( true ); return dataSource.getConnection(); }</code>
將allowPublicKeyRetrieval設為true,客戶端有權向伺服器要求公鑰。這解決了“不允許公鑰檢索”異常。
其他注意事項:
以上是Java連接MySQL時出現「不允許公鑰檢索」異常如何解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!