Heim Datenbank MySQL-Tutorial Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten

Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten

Dec 23, 2020 am 09:30 AM
mysql8

Die Spalte

MySQL-Video-Tutorial stellt die Probleme vor, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten, und erklärt Ihnen, wie Sie diese effektiv lösen können.

Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten

Empfohlen (kostenlos): MySQL-Video-Tutorial

Problembehebung
Der ursprüngliche Befehl zum Erstellen eines MySQL-Containers lautet wie folgt:

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:laster
Nach dem Login kopieren

Das Datenverzeichnis wird in /xxxx/xxx/mysqldata Let gemountet der Anführer unten Upgrade von MySQL Ich habe naiverweise ein MySQL: 8.0.11 neuestes
MySQL-Image heruntergeladen und dann

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:8.0.11
Nach dem Login kopieren

ausgeführt, um einen Container zu erstellen und ihn im ursprünglichen Verzeichnis bereitzustellen: /xxxx/xxx/mysqldata

Als Ergebnis der Container stürzte ab und konnte überhaupt nicht gestartet werden. Sehen Sie sich das Protokoll an

 docker logs -f -t --tail 70 mysql
Nach dem Login kopieren

Im Protokoll stand, dass die Plug-In-Datei unter /xxxx/xxx/mysqldata in Version 5.7 erstellt wurde und in 8.0 nicht gestartet werden konnte. Dann habe ich zurückgeschaltet zum ursprünglichen mysql:laster-Image, um den Container zu erstellen, und sagte, dass die 8.0-Modifikation nicht gestartet werden kann. Das alte Image kann nicht gestartet werden und das neue kann nicht gestartet werden . 日志说 大概是/xxxx/xxx/mysqldata下面的插件文件是5.7版本创建的 8.0无法启动 然后我有切回原本的 mysql:laster 镜像创建容器,又说这个目录下的文件被8.0修改无法启动,感觉这个目录就这么废了,老的镜像无法启动,新的也无法启动。

所以自己被自己的行为蠢哭了千万别再直接用新本的镜像启动容器时挂接原本的mysql目录,有同事说这样没问题,但为啥我出问题了人设有问题吗

解决方法:
用老的mysql:laster镜像连接 /xxxx/xxx/mysqldata 的备份目录,备份太重要了。启动一个mysql容器
用新的mysql:8.0.11 启动一个新的mysql 容器,挂接一个任意目录。然后通过navicat等其他工具将老的数据备份还原到新的mysql容器中。或者通过命令
$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql 备份还原。

1、如果你的新本mysql还原成功了你用 navicate工具连接报如下的错

Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten

那么你需要修改mysql 的 my.cnf  文件:
添加:

default_authentication_plugin=mysql_native_password
Nach dem Login kopieren

因为8.0使用的是 caching_sha2_password
你可以进入容器:

docker exec -it mysql /bin/bash
mysql -uroot -pxxxx
use mysql
select Host,User,plugin from mysql.user;
Nach dem Login kopieren

查看如下图

Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten

为啥非要修改caching_sha2_password 为 mysql_native_password ,我也不知道只是我的8.0.11的mysql容器启动后,程序接口任然无法正常使用报错:无法连接不支持的认证方法,这个时候可能需要升级程序接口的mysql驱动 ,但是懒得升,只能修改caching_sha2_password 为 mysql_native_password 结果就可以正常连接了。

Also habe ich wegen meines eigenen Verhaltens geweint. Bitte verwenden Sie nicht direkt das neue Image, um den Container zu starten und das ursprüngliche MySQL-Verzeichnis bereitzustellen. Einige Kollegen sagten, dass dies kein Problem sei I Gibt es ein Problem?

🎜Lösung: 🎜🎜Verwenden Sie das alte mysql:laster-Image, um eine Verbindung zum Sicherungsverzeichnis von /xxxx/xxx/mysqldata herzustellen . Starten Sie einen MySQL-Container 🎜 Verwenden Sie das neue MySQL: 8.0.11, um einen neuen MySQL-Container zu starten und ein beliebiges Verzeichnis bereitzustellen. Stellen Sie dann die alte Datensicherung mit anderen Tools wie Navicat im neuen MySQL-Container wieder her. Oder über den Befehl 🎜$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases .sql sichern und wiederherstellen. 🎜🎜1. Wenn Ihr neues MySQL erfolgreich wiederhergestellt wurde und Sie das Navicate-Tool zum Herstellen einer Verbindung verwenden, wird der folgende Fehler gemeldet🎜

Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten🎜🎜Dann müssen Sie die my.cnf-Datei von ändern sql: 🎜Hinzugefügt: 🎜

重容器中拷贝文件到宿主机 不需要容器启动
docker cp 容器:/etc/mysql/my.cnf  /home/xxx/my.cnf 

将宿主机的文件拷贝容器里面的目录下 会覆盖老的文件
docker cp /home/xxx/my.cnf   容器:/etc/mysql/
如果你特别牛逼程序中是用root来连接账号的那你可能还需要创建一个 ‘root’@'%' 的账号并修改它的权限可以远程访问,修改命令网上找
Nach dem Login kopieren
🎜 Wird seit 8.0 verwendet. Das ist caching_sha2_password🎜Sie können den Container eingeben: 🎜rrreee🎜Siehe das Bild unten🎜🎜 .png" alt="Lösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten"/>🎜🎜Warum Ich muss caching_sha2_password ändern zu mysql_native_password? Es ist nur so, dass die Programmschnittstelle nach dem Start immer noch nicht normal verwendet werden kann: Es kann keine Verbindung zu einer nicht unterstützten Authentifizierungsmethode hergestellt werden. Möglicherweise müssen Sie den MySQL-Treiber der Programmschnittstelle aktualisieren, sind aber zu faul für ein Upgrade und können daher nur caching_sha2_password in mysql_native_password ändern. Infolgedessen können Sie eine normale Verbindung herstellen. 🎜🎜3. Zeichnen Sie einige Docker-Befehle auf🎜rrreee

Das obige ist der detaillierte Inhalt vonLösen Sie die Probleme, die beim Upgrade des Docker-MySQL-Containers auf MySQL8 auftreten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

Wie behandeln Sie große Datensätze in MySQL? Wie behandeln Sie große Datensätze in MySQL? Mar 21, 2025 pm 12:15 PM

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Mar 19, 2025 pm 03:52 PM

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

Erläutern Sie InnoDB Volltext-Suchfunktionen. Erläutern Sie InnoDB Volltext-Suchfunktionen. Apr 02, 2025 pm 06:09 PM

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

Wie erstellen Sie Indizes für JSON -Spalten? Wie erstellen Sie Indizes für JSON -Spalten? Mar 21, 2025 pm 12:13 PM

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Mar 19, 2025 pm 03:48 PM

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

See all articles