Heim  >  Artikel  >  Datenbank  >  Wie kann die Ausnahme „Abruf öffentlicher Schlüssel ist nicht zulässig“ beim Verbinden von Java mit MySQL behoben werden?

Wie kann die Ausnahme „Abruf öffentlicher Schlüssel ist nicht zulässig“ beim Verbinden von Java mit MySQL behoben werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 05:53:30338Durchsuche

How to Resolve the

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 Aktivieren des Abrufs des öffentlichen Schlüssels kann Sicherheitsrisiken bergen. Ziehen Sie in Betracht, es nach dem Testen oder der Entwicklung zu deaktivieren.
  • Alternativ können Sie useSSL=false nur für Entwicklungszwecke festlegen. Verwenden Sie dies nicht in Produktionsumgebungen, da dadurch die SSL-Verschlüsselung deaktiviert wird.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn