Gründe und Lösungen für die Meldung „Kein geeignetes Protokoll“ oder „MySQL-Verbindungsprotokollproblem“ beim Projektstart verursacht durch JDK8 (Reiseerfahrung)

Der Artikel wurde zweimal überarbeitet, das Timing kann chaotisch sein, sorry!

Was ist passiert:

Als ich das Projekt früher erhalten habe, habe ich JDK8u311 installiert.Beim Starten des Projekts wurde zuerst eine Warnmeldung angezeigt:

WARNUNG: Der Aufbau einer SSL-Verbindung ohne Überprüfung der Serveridentität wird nicht empfohlen. Gemäß den Anforderungen von MySQL 5.5.45+, 5.6.26+ und 5.7.6+ muss standardmäßig eine SSL-Verbindung hergestellt werden, wenn die explizite Option nicht festgelegt ist. Zur Konformität mit vorhandenen Anwendungen, die kein SSL verwenden, wird die Eigenschaft verifyServerCertificate auf „false“ gesetzt. Sie müssen SSL entweder explizit deaktivieren, indem Sie useSSL=false festlegen, oder useSSL=true festlegen und einen Truststore für die Überprüfung des Serverzertifikats bereitstellen.

Dann wurde eine Fehlermeldung in folgendem Log gefunden:

Kein geeignetes Protokoll (Protokoll ist deaktiviert oder Cipher Suites sind ungeeignet),
das heißt: kein geeignetes Protokoll

Diese Art von Problem ist auch schon einmal aufgetreten. Normalerweise besteht meine Lösung darin, "useSSL=false" zur mysql-URL in der Konfigurationsdatei hinzuzufügen, aber dieses Mal verwendet das Projekt das Apollo-Konfigurationszentrum, und die Konfigurationsdatei wird ausgewählt, wenn das Projekt startet Konfigurationsdatei für "test".

Nachdem das Projekt gestartet wurde, wird standardmäßig die Konfigurationsdatei „development“ verwendet.Die Apollo-Konfigurationszentren, die verwendet werden, wenn die beiden gestartetwerden, sind wie folgt:

Entwicklung —> Test der lokalen Konfigurationsdatei
—> Vom Apollo Configuration Center erhalten

Ich habe dieses Problem am Anfang nicht bemerkt, also habe ich meine Aufmerksamkeit auf die JDK-Version gerichtet, weil die ursprüngliche JDK8u181-Version kein Problem war, also habe ich mich entschieden, eine niedrigere JDK-Version zu verwenden, um dieses Problem zu lösen!

Damals habe ich nie herausgefunden, warum die letzte Version von JDK8 normal verwendet werden konnte, aber dieses Mal hat es nicht funktioniert, also habe ich einige Tests durchgeführt:

Es stellt sich heraus, dass es möglich ist, die „Entwicklungs“-Umgebung mit JDK8u301 zu starten (es ist derzeit nicht 311, aber das gleiche Problem besteht), aber es ist nicht möglich, die „Test“-Umgebung zu testen Dateien, wird festgestellt, dass der Inhalt konsistent ist, was seltsam ist.

Später dachte ich schnell an das Problem des Apollo-Konfigurationszentrums. Nach Überprüfung des Protokolls erhielt ich das Ergebnis der obigen Tabelle. Zu diesem Zeitpunkt wurde die Wahrheit klar:

Wenn "test" ausgewählt ist, wird das Konfigurationszentrum verbunden, um die Konfiguration zu erhalten, aber "useSSL=false" wird nicht zur yml-Datei des Konfigurationszentrums hinzugefügt, und die lokale Konfigurationsdatei wird nicht wirksam!
Nach Änderung der Konfigurationsdatei im Apollo Configuration Center funktioniert alles einwandfrei!

Schließlich gibt es drei mögliche Lösungen:

  1. Sowohl Windows als auch Mac können durch Downgrade gelöst werden.Wenn Ihr Mac ein Apple-Chip ist, verwenden Sie möglicherweise Zulu JDK, aber Zulu stellt nicht die alte Version von JDK8 bereit, aber da die neue Version von Mac eine Übersetzung hat, kann dies auch der Fall sein installiert durch Installation des offiziellen Java Die alte Version, die kleine Version des persönlichen Tests, kann normal bei 221 und darunter verwendet werden, und das Problem ist immer noch das gleiche bei 311 und darüber. Ich bin auf dem Mac zum offiziellen JDK8u202 und auf Windows zu JDK8u211 gewechselt.
  2. Wer keinen Versionswechsel möchte, muss die Ausführungsgeschwindigkeit per Zulu JDK anpassen, dann kann man das Feld „SSLv3“ in der im ersten Bild oben aufgeführten Sicherheitsdatei löschen, das Projekt neu starten, und der Effekt kann auch sein erreicht!
  3. Fügen Sie nach der URL "useSSL=false" hinzu.

Im Folgenden sind die Unterschiede zwischen den letzten Versionen von JDK8 und den vorherigen Versionen in Bezug auf das Protokoll aufgeführt:
JDK8 hat ein solches Protokoll (SSLv3) in der später aktualisierten Version von Oracle hinzugefügt, das sich in jdk/jre/lib/security/java befindet. Sicherheit
Bildbeschreibung hier einfügen
Also durch Modifikation dieser Datei kann der Effekt auch erzielt werden!

Tschüss!

Supongo que te gusta

Origin blog.csdn.net/qq_25404477/article/details/122527433
Recomendado
Clasificación