Wie stelle ich eine sichere Verbindung zu MySQL 8 her, wenn caching_sha2_password verwendet wird?

Wie stelle ich eine sichere Verbindung zu MySQL 8 her, wenn caching_sha2_password verwendet wird?

Ich ziehe von unseren Websites zu einem neuen Host um. Unser Datenbankcluster (PCS) läuft jetzt mit MySQL 8. Wir haben zwei Datenbankserver (aktiv und Failover) mit einer schwebenden virtuellen IP, mit der wir eine Verbindung zu MySQL herstellen.

Wir führen auch eine Replikation vom Cluster zu einem anderen Server durch (mithilfe von Binärprotokollen). Ich habe die Replikation auf die gleiche Weise eingerichtet wie bei der Verwendung von MySQL 5.x, einschließlich der Verwendung von SSL mit selbstsignierter Zertifizierungsstelle und Zertifikaten.

Sobald die Zertifikate erstellt sind, verwende ich diese Konfiguration auf dem Master:

ssl
ssl-ca=/var/lib/mysql/ssl/ca.pem
ssl-cert=/var/lib/mysql/ssl/server-cert.pem
ssl-key=/var/lib/mysql/ssl/server-key.pem

Die Replikation läuft jetzt auf dem Slave einwandfrei. Wenn ich jedoch versuche, über die Befehlszeile (vom aktiven DB-Server) eine Verbindung zum MySQL-Cluster herzustellen, erhalte ich die folgende Fehlermeldung:

ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

Als ich darüber nachgelesen habe, dachte ich, es liege daran, dass dies caching_sha2_passwordjetzt die Standardeinstellung ist und in den Dokumenten steht, dass eine sichere Verbindung erforderlich ist. Ich habe Folgendes versucht:

mysql --ssl-mode=DISABLED

und das hat keinen Unterschied gemacht. Ich habe auch versucht, den Benutzer zu ändern:

mysql> ALTER USER 'root'@'db-01' IDENTIFIED WITH mysql_native_password BY 'passwordhere'

und das hat auch nicht funktioniert. Bisher konnte ich mich nur bei MySQL anmelden, indem ich SSL entfernte . Ich habe festgestellt, dass ichdürfenSo verbinden Sie es:

mysql --get-server-public-key

Ich bin jedoch nicht sicher, ob das die beste Lösung ist.

WasIstWie kann ich dafür sorgen, dass meine Verbindungen in MySQL 8 ordnungsgemäß funktionieren, wenn ich SSL auf diese Weise verwende? Es wird eine Reihe von Konten sowohl von den DB-Servern geben, aus denen der Cluster besteht, von den Webservern im selben internen Netzwerk als auch von extern (z. B. Replikation und Remote-DB-Verwaltung).

Antwort1

Ich habe mich gefragt, ob Sie das lösen konnten. Ich habe das gleiche oder ein ähnliches Problem. Hier ist mein Reddit-Thread: https://www.reddit.com/r/mysql/comments/10pa60k/group_replication_and_ssl_configuring_issues/

Jeder Vorschlag wäre großartig. Danke. DD

Antwort2

Nachdem ich eine Ewigkeit damit gekämpft hatte, habe ich endlich die Einstellung gefunden, die das Problem für mich behoben hat. Ihre Erfahrung kann abweichen

Alles, was ich tun musste, war, die folgende Zeile mit den restlichen Einstellungen meiner Gruppenreplikation zu meiner MySQL-Konfigurationsdatei hinzuzufügen

group_replication_recovery_get_public_key           = on

Soweit ich weiß, ist das nirgendwo dokumentiert. Ich bin nur zufällig darauf gestoßen, als ich MySQL-Variablen durchgesehen habe, in der Hoffnung, IRGENDWAS Hilfreiches zu finden.

verwandte Informationen