Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Linda Hamilton
Freigeben: 2024-10-31 05:53:30
Original
335 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!