Installieren Sie MySQL (einschließlich utf8) mit Docker unter Windows/Mac

Installieren Sie MySQL (einschließlich utf8) mit Docker unter Windows/Mac

1. Docker-Installation auf dem Mac

Besuchen Sie die offizielle Docker-Website: https://www.docker.com/get-started, um die Mac-Version herunterzuladen. Beim Herunterladen müssen wir uns beim Docker-Konto anmelden, daher müssen wir zuerst ein Docker-Konto registrieren. Dieses Konto kann auch zum Anmelden verwendet werden, wenn die Anwendung später gestartet wird.

Melden Sie sich zum Herunterladen bei Ihrem Docker-Konto an. Nach dem Herunterladen erhalten Sie eine Docker.dmg-Datei (523,1 MB). Doppelklicken Sie darauf, um sie zu installieren. Klicken Sie nach der Installation auf das Symbol, um Docker zu starten, wie unten gezeigt (whaly sollte ein frecher Wal sein).

Nachdem der nächste Schritt abgeschlossen ist, können Sie dieses Symbol oben sehen , wenn der Container aufhört zu springen, ist der Start abgeschlossen.

Um Bilder schneller abzurufen, können Sie es als inländische Bildquelle konfigurieren. Klicken Sie auf das Symbol, wählen Sie Einstellungen --> Daemon und geben Sie die inländische Docker-Container-Proxy-Adresse in die Registry-Mirrors ein. Alibaba Cloud wird hier empfohlen, Sie können aber auch NetEase Cloud verwenden. Hier finden Sie eine Demonstration, wie Sie Ihren eigenen Alibaba Cloud-Container-Image-Dienst erhalten.

Besuchen Sie die offizielle Website von Alibaba Cloud https://www.aliyun.com/ und melden Sie sich bei Ihrem Konto an. Gehen Sie zur Verwaltungskonsole --> Produkte und Dienste --> Elastic Compute --> Container Mirroring Service --> Mirror Accelerator, kopieren Sie Ihre eigene Accelerator-Adresse in die Registry-Mirrors und starten Sie Docker neu.

2. Docker-Installation unter Win 10-System

Besuchen Sie die offizielle Docker-Website: https://www.docker.com. Wenn Sie ein Docker-Konto haben, melden Sie sich am besten zuerst an und klicken Sie auf und klicken Sie dann auf (Wenn Sie sich noch nicht angemeldet haben, wird hier eine Anmeldeseite angezeigt.) Klicken Sie auf der Popup-Seite auf „Erste Schritte mit Docker Desktop“, um den Download zu starten.

Denken Sie an die mittlere Option Laden Sie die Windows-Version herunter. Der Download kann hier langsam sein. Wenn der Download langsam ist, können Sie ihn von http://get.daocloud.io/#install-docker-for-mac-windows herunterladen.

Hier kann das Win 10-System Hyper-V einschalten und dann den Neustart bestätigen

Aktivieren oder Deaktivieren von Windows-Funktionen

Wenn Hyper-V jedoch aktiviert ist, zeigt VMware Workstation beim Neustart des Images den folgenden Fehler an und kann nicht gestartet werden. Wenn Sie es normal verwenden möchten, können Sie diese Option abbrechen und dann zur Sicherheit bcdedit /set hypervisorlaunchtype off in PowerShell ausführen (Start -> Rechtsklick -> Windows PowerShell-Administrator). Starten Sie das System neu, um VMware Workstation normal zu verwenden.

bcdedit /set hypervisorlaunchtype off 

Doppelklicken Sie abschließend auf die heruntergeladene Datei Docker for Windows Installer.exe, um sie zu installieren.

Nach Abschluss der Installation werden Sie aufgefordert, das System neu zu starten. In der Taskleiste des Systems wird ein kleines Docker-Symbol angezeigt. Sie können den Eingabeaufforderungen folgen, um Folgendes in PowerShell einzugeben (Umschalt + Rechtsklick zum Auswählen):

Docker-Informationen
Docker-Version
Docker PS
Docker-Bilder
Docker Run Hallo Welt 

3. MySQL installieren

Sie können auch in der Alibaba Cloud-Konsolenbildsuche nach dem offiziellen MySQL suchen

Wählen Sie die erste aus, die sehr detaillierte Installationsanweisungen enthält. Sie können auch sehen, dass die unterstützte Version (Bezeichnung) 8.0.12 ist. Wir werden dieses Mal diese Version installieren.

Es wird empfohlen, vor der Installation die Beschreibung des Abschnitts „Wo werden die Daten gespeichert?“ im Dokument zu lesen, um zu verstehen, warum die Datenbankdaten bei der Installation von MySQL in Docker standardmäßig den lokalen Dateien Ihres Systems zugeordnet werden.

Es gibt viele Möglichkeiten, es zu installieren. Hier verwenden wir einfach den folgenden Befehl, um es automatisch zu installieren.

docker run --restart=always --name mysql8.0 -p 3306:3306 -v ~/soft/mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=**** -d mysql:8.0.12 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Parametererklärung: Eine detailliertere Parameterbeschreibung finden Sie in der Beschreibung von Docker Run auf der offiziellen Website (Docker Run-Beschreibung).

--restart=immer Automatischen Containerstart nach Docker einrichten
--Name Legen Sie den Namen dieses Containers fest
-p 3306:3306 Der vordere Teil ist der freiliegende Anschluss und der hintere Teil ist der Serviceanschluss im Behälter.
-v Lokales Verzeichnis: Containerpfad Am besten geben Sie diesen Parameter an, um den Einhängepunkt des Containers explizit einem lokalen Ordner zuzuordnen, in dem die Daten des Containers, einschließlich MySQL-Daten, gespeichert werden.
-e MYSQL_ROOT_PASSWORT Legen Sie das Passwort des Root-Benutzers fest
-d mysql:Tag Geben Sie die zu installierende MySQL-Version an. Das Tag kann die optionale Version auswählen, die in der offiziellen Dokumentation angegeben ist.

MySQL-Containerinformationen anzeigen

$ Docker ps 

Verwenden Sie das Tool (Navicat) zum Verbinden

Die Verbindung ist erfolgreich. Überprüfen Sie die Version, die ebenfalls die gerade installierte Version 8.0.12 ist.

[Hinweis] Hier ist zu beachten, dass das offizielle MySQL-Dockerfile das Debian-System verwendet, das die Sprache und den UTF-8-Zeichensatz standardmäßig nicht unterstützt, wie unten gezeigt:

Wenn Sie den MySQL-CLI-Befehl in Docker nicht verwenden, können Sie direkt das offizielle Image verwenden, was völlig in Ordnung ist. Wenn Sie jedoch den MySQL-CLI-Befehl in Docker verwenden müssen, kann der offizielle Befehl keine chinesischen Zeichen eingeben und das angezeigte Chinesisch ist verstümmelt. Zu diesem Zeitpunkt besuchen wir das offiziell von MySQL bereitgestellte Dockerfile.debian (https://github.com/docker-library/mysql), laden Version 8.0 auf den lokalen Computer herunter (Dockerfile.debian, docker-entrypoint.sh und Konfiguration unter Version 8.0 müssen heruntergeladen werden) und ändern das Dockerfile wie folgt. Der entscheidende Punkt besteht darin, Unterstützung für die UTF-8-Kodierung hinzuzufügen und die lokale Sprachumgebung auf en_US.utf8 einzustellen (das reicht am Anfang aus).

#
# HINWEIS: DIESE DOCKERFILE WIRD ÜBER „apply-templates.sh“ GENERIERT
#
# BITTE BEARBEITEN SIE ES NICHT DIREKT.
#
# Das System verwendet das Buster-Slim-Image von Debian VON Debian: Buster-Slim
 
# Richten Sie die uft8-Umgebung ein. Führen Sie apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ aus.
    && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
 
# Fügen Sie den MySQL-Benutzer und die Gruppe hinzu. RUN groupadd -r mysql && useradd -r -g mysql mysql
 
Führen Sie apt-get update und apt-get install -y --no-install-recommends aus. gnupg dirmngr und rm -rf /var/lib/apt/lists/*
 
# Fügen Sie gosu hinzu, um das Downgrade von Root aus zu vereinfachen. Weitere Informationen finden Sie unter https://github.com/tianon/gosu/releases.
ENV GOSU_VERSION 1.12
RUN set -eux; \
	savedAptMark="$(apt-mark showmanual)"; \
	apt-get update; \
	apt-get install -y --no-install-recommends ca-certificates wget; \
	rm -rf /var/lib/apt/lists/*; \
	dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
	wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
	wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
	export GNUPGHOME="$(mktemp -d)"; \
	gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
	gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \
	gpgconf --kill alle; \
	rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
	apt-mark auto '.*' > /dev/null; \
	[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; \
	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
	chmod +x /usr/local/bin/gosu; \
	gosu --version; \
	gosu, niemand, wahr
 
FÜHREN SIE Mkdir /docker-entrypoint-initdb.d AUS
 
Führen Sie apt-get update && apt-get install -y --no-install-recommends \ aus.
# für MYSQL_RANDOM_ROOT_PASSWORD
		pwgen \
# für mysql_ssl_rsa_setup
		openssl \
# SCHWERWIEGENDE FEHLER: Bitte installieren Sie die folgenden Perl-Module, bevor Sie /usr/local/mysql/scripts/mysql_install_db ausführen:
# Datei::Basisname
# Datei::Kopieren
# Sys::Hostname
# Daten::Dumper
		perl \
# installieren Sie „xz-utils“ für .sql.xz docker-entrypoint-initdb.d-Dateien
		xz-Dienstprogramme \
	&& rm -rf /var/lib/apt/lists/*
 
RUN set -ex; \
# gpg: Schlüssel 5072E1F5: öffentlicher Schlüssel „MySQL Release Engineering <[email protected]>“ importiert
	Schlüssel = 'A4A9406876FCBD3C456770C88C718D3B5072E1F5'; \
	export GNUPGHOME="$(mktemp -d)"; \
	gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
	gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; \
	gpgconf --kill alle; \
	rm -rf "$GNUPGHOME"; \
	apt-key-Liste > /dev/null
 
# MySQL-Umgebungsvariable ENV MYSQL_MAJOR 8.0 hinzufügen
ENV MYSQL_VERSION 8.0.22-1debian10
 
RUN echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list
 
# das "/var/lib/mysql"-Zeug hier liegt daran, dass der MySQL-Server-Postinst keine explizite Möglichkeit hat, den mysql_install_db-Codepfad zu deaktivieren, außer eine bereits "konfigurierte" Datenbank zu haben (d. h. Zeug in /var/lib/mysql/mysql)
# außerdem setzen wir Debconf-Schlüssel, um APT etwas leiser zu machen
LAUFEN { \
		echo mysql-community-server mysql-community-server/datenverzeichnis auswählen ''; \
		echo mysql-community-server mysql-community-server/root-pass Passwort ''; \
		echo mysql-community-server mysql-community-server/re-root-pass Passwort ''; \
		echo mysql-community-server mysql-community-server/remove-test-db wähle false; \
	} | debconf-set-auswahl \
	&& apt-get update \
	&& apt-get install -y \
		mysql-community-client="${MYSQL_VERSION}" \
		mysql-community-server-core="${MYSQL_VERSION}" \
	&& rm -rf /var/lib/apt/lists/* \
	&& rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql /var/run/mysqld \
	&& chown -R mysql:mysql /var/lib/mysql /var/run/mysqld \
# Stellen Sie sicher, dass /var/run/mysqld (für Socket- und Sperrdateien verwendet) beschreibbar ist, unabhängig von der UID, die unsere mysqld-Instanz zur Laufzeit hat.
	&& chmod 1777 /var/run/mysqld /var/lib/mysql
 
#Geben Sie den Einhängepunkt als /var/lib/mysql an oder führen Sie „docker run -v host directory: mount point in container VOLUME /var/lib/mysql“ aus.
 
# Konfigurationsdateien
KOPIEREN Sie config/ /etc/mysql/
KOPIEREN Sie docker-entrypoint.sh /usr/local/bin/
# abwärtskompatibel
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh
# Die Funktion ist ähnlich wie CMD, aber flexibler und komplexer. Nach der Verwendung wird der Inhalt von CDM als Parameter an die ENTRYPOINT-Anweisung ENTRYPOINT ["docker-entrypoint.sh"] übergeben.
 
# Deklarieren Sie die zur Laufzeit verfügbar gemachten Ports (Port1, Port2 …). Dieser konfigurierte Port wird jedoch zur Laufzeit nicht standardmäßig angezeigt und muss beim Ausführen weiterhin angegeben werden.
EXPOSE 3306 33060
CMD ["mysqld"]
 

Führen Sie den folgenden Befehl aus, um mit dem Erstellen des Images zu beginnen. Hier wird der Parameter -f verwendet, um die Dockerfile-Datei als Dockerfile.debian anzugeben. Wenn Sie den Standarddateinamen verwenden, müssen Sie ihn nicht angeben.

docker build -t mysql-utf8:8.0.22 -f ./Dockerfile.debian .

Nachdem der Build erfolgreich ist, können Sie das soeben erstellte MySQL-Image über Docker-Images anzeigen.

Abschließend nutzen wir dieses Image um einen Container mit folgendem Befehl zu starten

docker run --name mysql8.0 -p 33307:3306 -v /u01/docker-mysql/datadir:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Root-Benutzerkennwort -d mysql-utf8:8.0.22 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Nach dem Betreten des Containers stellte ich fest, dass UTF-8 bereits unterstützt wird

Wenn Sie die Version mysql5.X oder 8.X direkt unter einem Linux-System installieren, lesen Sie bitte meinen anderen Blogbeitrag Offline-Installation von mysql 5.7 / mysql 8.0 unter einer Centos7-Umgebung

Referenz: https://hub.docker.com/r/_/mysql/

Dies ist das Ende dieses Artikels über die Installation von MySQL (einschließlich utf8) mit Docker unter Windows/Mac. Weitere Informationen zur Installation von MySQL mit Docker finden Sie in früheren Artikeln auf 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:
  • Eine kurze Erläuterung zu „Group By“ in MySQL
  • Eine kurze Erläuterung der Situationen in MySQL, die zu Indexfehlern führen
  • Das ganz links stehende Übereinstimmungsprinzip des MySQL-Datenbankindex
  • Gemeinsame MySQL-Indexwirksamkeitsbedingungen und Indexungültigkeitsbedingungen
  • Eine kurze Diskussion über die Ungültigkeitserklärung oder implizite Konvertierung von MySQL-Integer- und String-Indizes
  • Installation von mysql5.7 und Implementierungsprozess der langfristigen kostenlosen Nutzung von Navicate
  • Detaillierte Erläuterung praktischer Beispiele zur Implementierung einer einfachen Restful-Style-API mit Gin und MySQL
  • Details zur Verwendung von „order by“ in MySQL
  • Details zur Verwendung regulärer Ausdrücke in MySQL

<<:  Detaillierte Erklärung der Group-By-Anweisung in der MySQL-Datenbankgruppenabfrage

>>:  Lösung für das HTML-Kodierungsproblem in IE6, das zu JS-Fehlern und nicht angewendetem CSS führt

Artikel empfehlen

Grundlagen der MySQL-Speicher-Engine

Im vorherigen Artikel haben wir über MySQL-Transa...

JavaScript-Countdown zum Schließen von Anzeigen

Verwenden von Javascript zum Implementieren eines...

Grundkenntnisse im Website-Design: Neulinge lesen bitte dies

Heutzutage beginnen viele Leute damit, Websites z...

Alibaba Cloud Centos7 Installation und Konfiguration von SVN

1. SVN-Server installieren yum installiere Subver...

Ein unvollständiger Leitfaden zur JavaScript-Toolchain

Inhaltsverzeichnis Überblick Statische Typprüfung...

Zusammenfassung der vier Möglichkeiten zum Durchlaufen eines Arrays in JS

Dieser Artikel vergleicht und fasst vier Möglichk...

Liste der HTML-Tags und Hinweise zur Verwendung

Liste der HTML-Tags markieren Typ Name oder Bedeu...

Implementierungsideen für die Synchronisierung von Docker-Registry-Images

Einleitung Bisher wurden unsere Docker-Images in ...

Eine kurze Diskussion über den CSS-Kaskadierungsmechanismus

Warum hat CSS einen Kaskadierungsmechanismus? Da ...

Erweiterte benutzerdefinierte JavaScript-Ausnahme

Inhaltsverzeichnis 1. Konzept 1.1 Was sind Fehler...