Ich habe heute MySQL 8.0 aktualisiert. Das erste Problem: Navicat kann keine Verbindung zur Datenbank herstellen Das installierte MySQL ist localhost:3306 und alle Einstellungen sind Standard. Öffnen Sie nach der Installation Navicat 12, um eine neue Verbindung herzustellen und einen Fehler direkt zu melden Authentifizierungs-Plugin „caching_sha2_password“ Das Authentifizierungs-Plugin konnte nicht geladen werden Überprüfte das offizielle Dokument 6.5.1.3 Caching SHA-2 Pluggable Authentication Es stellt sich heraus, dass in MySQL 8.0 caching_sha2_password mysql_native_password als Standardauthentifizierungs-Plugin ersetzt hat. Die offizielle Lösung lautet wie folgt 1. Konfigurieren Sie den Server neu, um zum vorherigen Standard-Authentifizierungs-Plugin (mysql_native_password) zurückzukehren. [mysqld] default_authentication_plugin=mysql_native_password Mit dieser Einstellung können Clients mit einer Version vor 8.0 eine Verbindung zu 8.0-Servern herstellen. Allerdings sollte diese Einstellung eher als temporäre Einstellung denn als langfristige oder dauerhafte Lösung betrachtet werden, da bei neuen Konten, die mit dieser effektiven Einstellung erstellt werden, die verbesserte Authentifizierungssicherheit durch caching_sha2_password nicht mehr zur Verfügung steht. 2. Ändern Sie die Authentifizierungsmethode des Root-Administratorkontos in mysql_native_password. Bei neuen MySQL 8.0-Installationen wird das Konto „root“@„localhost“ erstellt, wenn das Datenverzeichnis initialisiert wird, und dieses Konto verwendet standardmäßig caching_sha2_password. Stellen Sie eine Verbindung zum Serverstamm her und ändern Sie mit ALTER USER das Kontoauthentifizierungs-Plugin und das Passwort wie folgt: ALTER USER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password NACH 'Passwort'; An diesem Punkt wurde das Problem des Ersetzens der standardmäßigen Identitätsüberprüfung für MySQL 8.0 behoben. Zweite Frage: Verursacht durch: java.sql.SQLException: Unbekannter anfänglicher Zeichensatzindex „255“ … Nachdem ich die Datenbank aktualisiert hatte, startete ich lokal ein kleines Java-Projekt, stellte eine Verbindung zur Datenbank her und führte ein Testprogramm aus, aber es wurde eine Ausnahme ausgelöst. Ich überprüfte das offizielle Dokument „Änderungen in MySQL 8.0.1“ (10.04.2017, Entwicklungsmeilenstein) und stellte fest, dass Version 8.0.1 mehrere wichtige Änderungen an der Unicode-Zeichensatzunterstützung vornahm und der Standardzeichensatz von latin1 auf utf8mb4 geändert wurde. Die Standardsystemvariablen collation_server und collocation_database dieses Systems wurden von latin1_swedish_ci in utf8mb4_0900_ai_ci geändert. Lösung: Alle diese Änderungen wurden in der neuen Version von MySQL Connector Java berücksichtigt und es ist keine Konfiguration von MySQL erforderlich. Sie müssen also nur die MySQL-Version aktualisieren, 5.1.6 auf 5.1.44 ändern und das Problem ist perfekt gelöst. <Abhängigkeit> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </Abhängigkeit> Frage 3: Nachdem die Installation abgeschlossen ist, rufen Sie die Datenbank „show databases“ auf oder versuchen Sie, die Berechtigungen zu ändern, und es wird eine Fehlermeldung angezeigt
Problemumgehung mysql_upgrade -u root -p; Frage 4: Nachdem der Client erfolgreich eine Verbindung zur Datenbank hergestellt hatte, wurde festgestellt, dass die PDO-Verbindung zu MySQL im Projekt erneut einen Fehler meldete.
Dieser Fehler kann dadurch verursacht werden, dass MySQL als Standard-Authentifizierungs-Plugin „caching_sha2_password“ anstelle von „mysql_native_password“ verwendet, der Client dieses Plugin jedoch derzeit nicht unterstützt. Amtliche Dokumentation
In MySQL 8.0 ist caching_sha2_password anstelle von mysql_native_password das Standardauthentifizierungs-Plugin. Informationen zu den Auswirkungen dieser Änderung auf den Serverbetrieb und die Serverkompatibilität mit Clients und Konnektoren finden Sie unter caching_sha2_password als bevorzugtes Authentifizierungs-Plugin. Problemumgehung Bearbeiten Sie die Datei my.cnf und ändern Sie das Standardauthentifizierungs-Plugin. $ vi /etc/meine.cnf Fügen Sie den folgenden Code in [mysqld] ein default_authentication_plugin=mysql_native_password Starten Sie dann MySQL neu $ service mysqld neu starten Die Website wurde schließlich normal geöffnet. . . Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: Implementierung der IP-Adresskonfiguration in Centos7.5
1. Befehlseinführung Der Befehl usermod (user mod...
Herzattribute opacity: .999 erstellt einen Stapel...
Inhaltsverzeichnis Vorwort 1. Einfügen von ignore...
Inhaltsverzeichnis 1. Verständnis der Gleichheits...
In diesem Artikelbeispiel wird der spezifische Co...
Hier ist eine kurze Zusammenfassung der Installat...
Vorwort Standardmäßig initialisiert MySQL einen g...
1. Ziehen Sie das Bild Docker-Pull-Registrierung....
Netzwerktyp nach der Docker-Installation [root@in...
Umgebungsvorbereitung 1. Umweltkonstruktion React...
Inhaltsverzeichnis nächstesTick Syntaxvereinfachu...
Da der Docker-Daemon an den Unix-Socket des Hosts...
Docker fragt Bilder in einem privaten Register ab...
Die Lösung für das Problem mit der transparenten S...
Webseite WB.ExecWB-Steuerungsdruckmethode Code ko...