Verbindung Java - MySQL: Ausnahme „Public Key Retrieval ist nicht zulässig“ wird aufgelöst
Beim Versuch, eine Verbindung zu einer MySQL-Datenbank mit herzustellen Bei Java und dem 8.0.11-Connector kann bei Benutzern die folgende Ausnahme auftreten:
<code class="java">Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed</code>
Lösung:
Diese Ausnahme zeigt an, dass der Client versucht, die Öffentlichkeit abzurufen Schlüssel vom Server, der Abruf des öffentlichen Schlüssels ist jedoch nicht zulässig. Um dieses Problem zu beheben, müssen wir den Abruf öffentlicher Schlüssel explizit zulassen, indem wir der MySQL-Verbindungszeichenfolge die Option „allowPublicKeyRetrieval=true“ hinzufügen.
Geänderte Verbindungsmanagerklasse:
<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>
Durch die Einstellung vonallowPublicKeyRetrieval auf true wird der Client berechtigt, den öffentlichen Schlüssel vom Server anzufordern. Dadurch wird die Ausnahme „Abruf des öffentlichen Schlüssels ist nicht zulässig“ behoben.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie kann die Ausnahme „Abruf öffentlicher Schlüssel ist nicht zulässig“ beim Verbinden von Java mit MySQL behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!