1. Sichern Sie die alten MySQL5.7-DatenDenken Sie daran, zuerst alte Daten zu sichern, um Datenverlust aufgrund eines Upgradefehlers zu verhindern. Zum Sichern gibt es zwei Möglichkeiten. Eine besteht darin, den Exportbefehl direkt auf dem Hostcomputer auszuführen, und die andere besteht darin, zuerst die Docker-Umgebung aufzurufen, um den Vorgang auszuführen. Die wichtigsten Exportbefehle sind wie folgt: #Methode 1: Daten direkt auf dem Hostcomputer sichern# 0df568 ist die Docker-ID; -uroot -p123456 ist der Benutzername und das Passwort; dbA dbB sind die zu sichernden Daten, --databases können von mehreren Datenbanknamen gefolgt werden und das exportierte SQL geht nach /root/all-databases3306.sql docker exec -it 0df568 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #============================================================================================================================================== #Methode 2: Geben Sie zuerst Docker ein und führen Sie mysqldump aus. Kopieren Sie dann das exportierte SQL auf den Host. #Geben Sie zuerst Docker ein docker exec -it 0df568 /bin/bash #Optionale Quelle /etc/profile #Führen Sie den Exportbefehl mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql aus. #Auf den Hostcomputer kopieren#Docker beenden und den Exit-Befehl exit ausführen #An diesem Punkt befinden Sie sich bereits in der Hostumgebung. Führen Sie den Kopierbefehl aus, um die SQL-Datei von Docker Red zu kopieren. docker cp 0df568:/root/all-databases3306.sql /root/all-databases3306.sql 2. Ziehen Sie das Image von MySQL8.0.13 und schließen Sie die Installation abSie können MySQL von der offiziellen Website abrufen und installieren. Referenz-URL: https://hub.docker.com/r/mysql/mysql-server/. Hier ist eine kurze Beschreibung des Installationsvorgangs. 2.1 Ziehen Sie das Bild auf den lokalenFühren Sie den folgenden Befehl aus, um das neueste MySQL-Image abzurufen Docker Pull MySQL/MySQL-Server: Letzte Rufen Sie das angegebene MySQL-Image ab #tag dient zum Eingeben der gewünschten Versionsnummer. Wenn Sie beispielsweise MySQL8.0.13 möchten, lautet das Tag Sie können Docker-Images verwenden, um den heruntergeladenen Fortschritt anzuzeigen. 2.2 MySQL 8.0.13-Image ausführenFühren Sie das angegebene MySQL8.0.13-Docker-Image aus. Wir haben das angegebene Image bereits in Schritt 2.1 abgerufen. Anschließend können wir das lokale Docker-Image über Docker-Images anzeigen und die Image-ID und den Namen abrufen. Führen Sie als Nächstes den folgenden Befehl aus, um das Docker-Image von MySQL 8.0.13 auszuführen: #--name gibt den Namen nach dem Ausführen und Starten an -e gibt die Umgebungsvariablen in Docker an -v Partitions- oder Verzeichniszuordnung, Docker-Programmdaten werden dem angegebenen Speicherort des Hosts zugeordnet -p gibt die Portzuordnung vom Host zum Docker-Programm an -d gibt die Version des Images an. docker run --name=mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -v /root/dockerdata/mysql8.0/data:/var/lib/mysql -p 3307:3306 -dit mysql/mysql-server:8.0.13 Überprüfen Sie, ob es läuft # Führen Sie den folgenden Befehl aus: docker ps 3. Einige Probleme nach dem Upgrade auf MySQL 8.XNach dem Upgrade von MySQL 8.x können keine Remoteverbindungen hergestellt werden, was sehr unpraktisch ist und geändert werden muss. Es umfasst hauptsächlich die folgenden zwei Aspekte der Konfiguration: 3.1 Fernzugriff ermöglichenÄndern Sie den Benutzer in @'%', % bedeutet, dass alle Hosts eine Verbindung herstellen können, der Befehl lautet wie folgt: #Melden Sie sich zunächst als Root bei der Datenbank an und führen Sie die folgenden Befehle aus #a. Verwenden Sie msyql benutze MySQL; #b. Führen Sie dann die Autorisierung aus. GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' #c. Denken Sie daran, die Berechtigungen zu aktualisieren (neu laden), andernfalls müssen Sie MySQL neu starten, damit FLUSH PRIVILEGES wirksam wird. 3.2 Ändern Sie die Methode zur Kennwortüberprüfung für die Verbindung Die Verschlüsselungsmethode von MySQL8.X ist caching_sha2_password. Die Verschlüsselungsmethode caching_sha2_password wird beim Remotezugriff nicht unterstützt und muss daher in # a. Ändern Sie den angegebenen Benutzer ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # b. Denken Sie daran, die Berechtigungen zu aktualisieren (neu laden), andernfalls müssen Sie MySQL neu starten, damit FLUSH PRIVILEGES wirksam wird. 4. Daten in das neue MySQL importierenUm Daten zu importieren, kopiere ich zuerst die Datenbanksicherungsdatei in den neuen Docker und führe dann den Importbefehl aus. Der Befehl lautet wie folgt: #Kopieren Sie die Sicherungsdatei nach Docker cp /root/all-databases3306.sql 3sfsdf:/root/all-databases3306.sql #Geben Sie zuerst die Docker-Umgebung ein und importieren Sie sie dann in die Datenbank docker exec -it xxx /bin/bash mysql -u root -p < /root/all-databases3306.sql 5. Referenzdokumente https://hub.docker.com/r/mysql/mysql-server/ Zusammenfassen Das Obige ist die Einführung des Herausgebers zum Upgrade der Docker-Version von MySQL5.7 auf MySQL8.0.13 und zur Datenmigration. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung zum Ändern des Root-Passworts in MySQL 5.7 und MySQL 8.0
>>: Beispielschritte zur Verwendung von AntV X6 mit Vue.js
Die erste Methode: Verwenden Sie Junges Ein-Klick...
Manchmal müssen wir eine ganze Datenspalte aus ei...
Vorwort Dieser Artikel enthält 1. Mehrere wesentl...
Hintergrund Suchen Sie in der Suchmaschine nach d...
In diesem Artikel wird der spezifische Code von J...
Früher hatte fast jede Website eine Sitemap-Seite...
Möglicherweise ist Ihnen aufgefallen, dass auf die...
Inhaltsverzeichnis Grundlegende Selektorerweiteru...
In diesem Artikelbeispiel wird der spezifische Ja...
Beim Benutzerwechsel im Docker-Container kommt di...
Da das Projekt einen Fragebogen erfordert, der Kun...
1. Tcl-Skriptdatei circle.tcl Codekommentare #Leg...
Inhaltsverzeichnis 1. Eclipse konfiguriert Tomcat...
Zeit(); Funktion Funktionsprototyp: time_t time(t...
Inhaltsverzeichnis 1. Einleitung 2. Über vue-simp...