Verbindung Java - MySQL: Fehlerbehebung bei der Ausnahme „Public Key Retrieval ist nicht zulässig“
Beim Versuch, eine Verbindung zu einer MySQL-Datenbank herzustellen Bei Verwendung des Java-Connectors 8.0.11 kann es bei Entwicklern zu der Ausnahme „Public Key Retrieval ist nicht zulässig“ kommen. Dieser Fehler tritt während des Verbindungs-Handshake-Prozesses auf und bedeutet, dass der Client (Java-Anwendung) nicht berechtigt ist, den öffentlichen Schlüssel zur Authentifizierung vom Server zu erhalten.
Ausnahmeursache
Die Ausnahme tritt auf, wenn die Java-Anwendung versucht, den öffentlichen Schlüssel des Servers abzurufen, der zum Verschlüsseln und Übertragen vertraulicher Informationen wie dem Benutzerkennwort verwendet wird. Standardmäßig verbietet MySQL den Abruf öffentlicher Schlüssel, um potenzielle Man-in-the-Middle-Angriffe (MITM) zu verhindern.
Lösung
Um dieses Problem zu beheben, muss die Java-Anwendung verwendet werden muss explizit konfiguriert werden, um den Abruf des öffentlichen Schlüssels beim Herstellen der Datenbankverbindung zu ermöglichen. Dies kann erreicht werden, indem der Parameter „allowPublicKeyRetrieval=true“ als Teil der JDBC-Verbindungszeichenfolge angegeben wird.
Hier ist ein Beispiel für eine JDBC-Verbindungszeichenfolge, die den Parameter „allowPublicKeyRetrieval“ enthält:
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true
Beachten Sie Folgendes Das Aktivieren des Abrufens öffentlicher Schlüssel stellt ein potenzielles Sicherheitsrisiko dar, da der Client anfällig für MITM-Angriffe wird, wenn die Verbindung nicht über einen sicheren Kanal (z. B. HTTPS) erfolgt. Zu Entwicklungs- und Testzwecken kann es sicherer sein, SSL zu deaktivieren und explizit useSSL=false in der Verbindungszeichenfolge anzugeben:
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false
Zusätzliche Tipps
Wenn das Problem auftritt trotz der Angabe von „allowPublicKeyRetrieval=true“ bestehen bleibt, versuchen Sie die folgenden zusätzlichen Maßnahmen:
Das obige ist der detaillierte Inhalt vonWarum löst meine Java-Anwendung beim Herstellen einer Verbindung mit MySQL die Ausnahme „Das Abrufen öffentlicher Schlüssel ist nicht zulässig' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!