VorwortIch war in letzter Zeit mit dem Fighting-Projekt beschäftigt und habe deshalb beim Schreiben etwas nachgelassen, was wirklich nicht richtig ist. Ich musste zufällig ein Upgrade von MySQL5.7.33 auf MySQL8.0.x durchführen und habe daher den gesamten Upgrade-Prozess aufgezeichnet, um Fallstricke zu vermeiden. Hintergrundzusammenfassung: Das im lokalen Docker-Container verwendete MySQL ist 5.7.33 (das Image-System verwendet Ubuntu 16.04), während das neue Projekt online MySQL 8.0 verwendet. Die aus dem Online-Export erstellte SQL-Datei (Tabellenstruktur + Daten) weist eine Zeichenkodierung auf, die von der niedrigeren MySQL-Version nicht verwendet wird. Beim Import tritt ein Fehler auf. Der aufgetretene Zeichensatzfehler lautet wie folgt: – Unbekannte Sortierung: „utf8mb4_0900_ai_ci“ Nachdem ich eine Weile gesucht hatte, beruhigte ich mich und kam auf zwei Ideen. Die eine nenne ich eine selbstzerstörerische Lösung, die andere eine radikale Lösung. Wie der Name schon sagt, löst das Zuhalten der Ohren und Stehlen der Klingel nicht das wesentliche Problem, sondern behebt den Fehler durch stapelweises Ersetzen des Zeichensatzes, d. h. durch Ersetzen aller utf8mb4_0900_ai_ci in der Datei durch: utf8_general_ci. Die zweite Methode besteht darin, die Konsistenz mit der Online-MySQL-Version zu wahren, sodass der Zeichensatz unterstützt werden kann. Daher habe ich die zweite Methode verwendet, um MySQL in meinem Docker-Container zu aktualisieren und gleichzeitig ein neues Image zu verpacken. Der Upgrade-Prozess ist zwar etwas holprig, die Logik ist jedoch klar. 1. Deinstallieren Sie zunächst die vorhandene MySQL-Version vollständig.Sie können den folgenden Befehl verwenden: #MySQL-Datendateien löschen sudo rm -R /var/lib/mysql/ #Löschen Sie die MySQL-Konfigurationsdatei sudo rm -R /etc/mysql/ #MySQL automatisch deinstallieren (einschließlich Server und Client) sudo apt-get autoremove mysql* --purge sudo apt-get entferne Apparmor Denken Sie daran, die Konfigurationsdatei zu löschen, da sie möglicherweise inkompatibel ist. 2. Laden Sie deb herunter und installieren Sie MySQL 8.x.Sie können es von der offiziellen Website unter https://dev.mysql.com/repo/apt herunterladen. Wir wählen den aktuellsten Deb-Download, die URL lautet: wget https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb Nachdem der Download abgeschlossen ist, verwenden Sie den Befehl dpkg und aktualisieren Sie die apt-Quelle. Anschließend können Sie es installieren. Der vollständige Befehl lautet wie folgt: dpkg -i mysql-apt-config_0.8.20-1_all.deb apt-get-Aktualisierung apt-get install -y mysql-server Während der Ausführung des letzten Befehls werden Sie aufgefordert, das Root-Passwort und einige grundlegende Konfigurationseinstellungen einzugeben. Anschließend können Sie die Installation abschließen. Da MySQL in Ubuntu installiert ist, lautet die Startmethode: Dienst MySQL starten Mit dem Befehl können Sie den Status des laufenden Prozesses anzeigen. Im Normalfall sieht die Ausgabe ungefähr wie folgt aus:
3. Benutzer erstellen und Berechtigungen konfigurieren.Bei der tatsächlichen Verwendung von MySQL 8.0.x stellt sich heraus, dass sich die Benutzerautorisierung geringfügig von früheren Versionen unterscheidet und in drei Schritte unterteilt werden muss:
Die spezifischen SQL-Anweisungen lauten wie folgt und die Reihenfolge ist strikt: Erstellen Sie den Benutzer „freephp“@„%“, identifiziert durch „176serTTc8Cg“; gewähre „freephp“@„%“ alle Berechtigungen für dev_database.* mit der Gewährungsoption; Berechtigungen leeren; Lassen Sie mich das obige SQL erklären. Der erste Satz erstellt einen Benutzer namens freephp mit dem Passwort 176serTTc8Cg. % bedeutet, dass jeder Host eine Verbindung herstellen kann. Der zweite Satz bedeutet, dem Benutzer freephp alle Berechtigungen für dev_database zu erteilen. Der dritte Satz besteht darin, die Berechtigungen sofort zu aktualisieren, damit die neu erstellten Berechtigungen wirksam werden können. Das Abenteuer ist nun abgeschlossen. Die neuen Funktionen von MySQL 8.0 müssen noch erkundet werden. Wir werden das nächste Mal darüber sprechen. ZusammenfassenDies ist das Ende dieses Artikels über Fallstricke beim Upgrade auf MySQL 8.0. Weitere Informationen zu Fallstricken beim Upgrade auf MySQL 8.0 finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Schritte zur Verwendung von Arthas in einem Docker-Container
>>: So verbergen und entfernen Sie Bildlaufleisten in HTML
#Docker-Suche #Docker-Pull-Portainer 1. Laden Sie...
Legen Sie in js fest, dass der Benutzer vor der Ü...
Vorwort Meta ist ein Hilfstag im Kopfbereich der ...
Vorwort Bei der tatsächlichen Entwicklung werden ...
Wenn wir über den Ausnahmefilter von Nestjs sprec...
NextCloud Sie können beliebige Dateien oder Ordne...
MySQL-Abfragedaten aus einer Tabelle und Einfügen...
Dieser Artikel veranschaulicht anhand von Beispie...
Dies ist ein sehr einfacher, reiner CSS3-Hintergr...
In diesem Artikelbeispiel wird der spezifische Co...
KDE Abkürzung für Kool Desktop Environment. Eine ...
In diesem Artikelbeispiel wird der spezifische Co...
In diesem Artikel wird das Gesundheitsmeldesystem...
Szenario: Ein Prüfdokument hat n Prüfdetails und ...
Swap-Speicher bedeutet hauptsächlich, dass das Sy...