[JAVA] SQL-Fehler [08001]: Problemumgehung für das Abrufen öffentlicher Schlüssel ist nicht zulässig [JDBC: MySQL]

Unmittelbare Umwelt -Datenbank: MySQL 8.0.16 ・ Sprache: Java -JDBC-Treiber: mysql-connector-java-8.0.16 -DB Referenztool: DBeaver

Beim Versuch, eine Verbindung zur Datenbank herzustellen, treten mehrere Fehler auf

Als ich versuchte, von Java aus eine Verbindung zur Datenbank herzustellen, funktionierte diese plötzlich nicht mehr. Die folgende Fehlerbeschreibung befindet sich auf der Eclipse-Konsole.

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet successfully received from the server was 25 milliseconds ago. 
The last packet sent successfully to the server was 28 milliseconds ago.

Wenn ich versuche, eine Verbindung über DBeaver herzustellen, wird die folgende Fehlerbeschreibung angezeigt.

SQL Error [08001]: Public Key Retrieval is not allowed

Ich habe den folgenden Artikel gesucht und gesehen und konnte ihn lösen. https://stackoverflow.com/questions/50379839/connection-java-mysql-public-key-retrieval-is-not-allowed

Setzen Sie die JDBC-Treibereigenschaft "allowPublicKeyRetrieval" auf true und "useSSL" auf false

DBeaver:

  1. Klicken Sie im "Database Navigator" mit der rechten Maustaste auf die entsprechende Verbindung und klicken Sie auf "Verbindung bearbeiten".
  2. Wählen Sie Verbindungseinstellungen> Treibereigenschaften.
  3. "allowPublicKeyRetrieval" wurde in "true" geändert.
  4. Ändern Sie "useSSL" in false. (Übrigens war ich ursprünglich falsch, also musste ich mich nicht darum kümmern.)
  5. Drücken Sie "OK".

Java-Code:

  1. Der Datenbankverbindungszeichenfolge wurde "allowPublicKeyRetrieval = true & useSSL = false" hinzugefügt.

sample.java


String database = "jdbc:mysql://localhost:3306/sample_db?allowPublicKeyRetrieval=true&useSSL=false";

Recommended Posts

SQL-Fehler [08001]: Problemumgehung für das Abrufen öffentlicher Schlüssel ist nicht zulässig [JDBC: MySQL]
[Mysql2] Mysql2 :: Fehler: Der angegebene Schlüssel war zu lang, die maximale Schlüssellänge beträgt 767 Byte → Wird durch Erstellen einer neuen Datei mit Zeichenbeschränkungen behoben
SQL-Fehler [08001]: Problemumgehung für das Abrufen öffentlicher Schlüssel ist nicht zulässig [JDBC: MySQL]
"tx" ist kein gebundener Fehler