Voraussetzung: Docker wurde installiert
Ziehen Sie das offizielle Bild
docker pull mysql:5.7 # 拉取 mysql 5.7
docker pull mysql # 拉取最新版mysql镜像
Problembehandlung:
Führen Sie docker pull mysql:5.7 aus und melden Sie einen Fehler:
no matching manifest for linux/arm64/v8 in the manifest list entries
Grund:
Mac M2-Chip: Wenn Sie Docker verwenden möchten, um das Image von MySQL5.7 abzurufen, wird dieser Fehler gemeldet
uname -a #显示系统名、节点名称、操作系统的发行版号、内核版本等等。
Darwin liqiongdeMacBook-Pro.local 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct 9 20:15:52 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T8112 arm64
Lösung:
docker pull --platform linux/x86_64 mysql:5.7
Überprüfen Sie, ob der Pull erfolgreich ist
docker images
Starten Sie den Container
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --lower_case_table_names=1
--name: Containername, hier MySQL genannt
-e: Konfigurationsinformationen, in denen das Anmeldekennwort des Root-Benutzers von MySQL konfiguriert ist
-p: Portzuordnung, wobei Port 3306 des Hosts Port 3306 des Containers zugeordnet wird
-d: Führen Sie den Container im Hintergrund aus, um sicherzustellen, dass der Container nach dem Verlassen des Terminals weiter ausgeführt wird
--lower_case_table_names=1: Groß-/Kleinschreibung ignorieren, Docker MySQL berücksichtigt standardmäßig die Groß-/Kleinschreibung
Hinweis: Die Reihenfolge der Parameter muss korrekt sein. --lower_case_table_names=1 sollte nach dem Bildnamen hinzugefügt werden, die Parameter stehen vor dem Bildnamen und die MySQL-Konfiguration steht dahinter, andernfalls wird ein Fehler gemeldet
Lower_case_table_names=1 kann nur zum Zeitpunkt der Initialisierung konfiguriert werden
Fehler:
Error response from daemon: Conflict. The container name "/mysql" is already in use by container "6d6f0422533f4ab08042b9a55c6c06233cff32dff1826f7a56a6fff69efaaffa". You have to remove (or rename) that container to be able to reuse that name.
lösen:
1. Geben Sie docker ps -a ein, um alle laufenden Instanzen anzuzeigen
2. Geben Sie docker rm 6d6f0422533f ein, um die Instanz zu löschen
3. Führen Sie den Befehl erneut aus: docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --lower_case_table_names=1
4. Es zeigt, dass die Ausführung erfolgreich war
Navicat-Testverbindung: Display-Verbindung ist erfolgreich