Docker-Installation von MySQL (8 und 5.7)

Docker-Installation von MySQL (8 und 5.7)

In diesem Artikel wird die Verwendung von Docker zum Bereitstellen einer MySQL-Datenbank und zur Konfiguration des Fernzugriffs vorgestellt.

Installieren von MySQL

Ziehen Sie das Bild

Verwenden Sie den folgenden Befehl, um das MySQL-Datenbankabbild abzurufen:

$ sudo docker pull mysql # Zieht die neuste Version des Images, derzeit MySQL 8, Tag ist latest

$ sudo docker pull mysql:5.7 # Geben Sie an, dass MySQL Version 5.7 gezogen werden soll

Mit dem Suchbefehl können Sie auch andere MySQL-bezogene Mirrors finden, die mit der Anzahl der Sterne, also der Popularität, gekennzeichnet sind.

$ sudo Docker Suche MySQL

Ausführen von MySQL

$ sudo docker run -p 3306:3306 \
  --name mysql \
  -v $PWD/conf:/etc/mysql/conf.d \
  -v $PWD/Protokolle:/Protokolle \
  -v $PWD/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=Ihr Passwort \
  -d MySQL

Befehlserklärung:

  • -p 3306:3306: Ordnen Sie den Port 3306 des Containers dem Port 3306 des Hosts zu.
  • -v $PWD/conf:/etc/mysql/conf.d: Mounten Sie conf/my.cnf im aktuellen Verzeichnis des Hosts in /etc/mysql/my.cnf im Container.
  • -v $PWD/logs:/logs: Mounten Sie das Protokollverzeichnis unter dem aktuellen Verzeichnis des Hosts in die /logs des Containers.
  • -v $PWD/data:/var/lib/mysql: Mounten Sie das Datenverzeichnis unter dem aktuellen Verzeichnis des Hosts in /var/lib/mysql des Containers.
  • -e MYSQL_ROOT_PASSWORD=Ihr Passwort: Initialisiert das Passwort des Root-Benutzers. Es wird empfohlen, ein sehr komplexes Passwort zu verwenden.
  • -d mysql: Der Name des Images, das bereitgestellt werden soll. Wenn es Version 5.7 ist, lautet es mysql:5.7

Konfigurieren des Remotezugriffs

Der Remote-Zugriff auf MySQL ist eine grundlegende Konfiguration. Bei der Konfiguration müssen Sie jedoch auf Sicherheitsaspekte achten, da sonst Sicherheitsrisiken, insbesondere bei Unternehmensservern, entstehen.

Beachten Sie außerdem, dass der Port 3306 in der Firewall des Servers und in der Sicherheitsgruppe des Serveranbieters aktiviert sein muss, da er sonst nicht erreichbar ist.

Um den Fernzugriff zu konfigurieren, öffnen Sie zunächst das MySQL-Steuerterminal und verwenden Sie den folgenden Befehl, um es zu öffnen:

$ sudo docker exec -it mysql bash # Rufen Sie den MySQL-Container auf $ mysql -uroot -p # Melden Sie sich bei MySQL an und geben Sie nach der Ausführung das Passwort ein

$ use mysql; # Wählen Sie die Verwendung der MySQL-Datenbank

MySQL 8-Konfiguration

CREATE USER 'Benutzername'@'%' IDENTIFIZIERT DURCH 'Passwort';
# Erstellen Sie ein Konto für den Fernzugriff;
# {usernama} ist der Benutzername für die Fernzugriffsanmeldung. Die Verwendung von root wird nicht empfohlen.
# {password} ist das Anmeldekennwort für den Fernzugriff;
# „%“ steht für alle IPs. Versuchen Sie, wenn möglich, eine bestimmte IP oder ein bestimmtes IP-Segment festzulegen. GRANT ALL ON *.* TO „Benutzername“@„%“;
# Erteilen Sie dem zuvor erstellten Konto alle Berechtigungen. ALTER USER 'Benutzername'@'%' IDENTIFIED WITH mysql_native_password BY 'Passwort';
# Bestätigen Sie hier, dass Sie das Passwort für die Anmeldung bei diesem Konto verwenden möchten. FLUSH PRIVILEGES;
# Berechtigungen aktualisieren

Der vollständige Befehl lautet wie folgt:

ERSTELLEN SIE BENUTZER „james“@„%“, IDENTIFIZIERT DURCH „123456asd“;
# Erstellen Sie ein Konto – James für den Fernzugriff;

GRANT ALLES AUF *.* AN 'james'@'%';
# Erteilen Sie dem zuvor erstellten Konto alle Berechtigungen: james

ALTER USER 'james'@'%' IDENTIFIZIERT MIT mysql_native_password VON '123456asd';
# Bestätigen Sie, dass Sie das Passwort {123456asd} verwenden möchten, um sich bei diesem Konto {james} anzumelden
# Machen Sie das Passwort für eine höhere Sicherheit so komplex wie möglich.

FLUSH-PRIVILEGIEN;
# Berechtigungen aktualisieren

Verwenden Sie nach der Konfiguration Navicat oder andere Tools, um die Verbindung zu testen.

MySQL 5.7-Konfiguration

GEWÄHREN SIE ALLE PRIVILEGIEN FÜR *.* AN „Benutzername“@„%“, IDENTIFIZIERT DURCH „Passwort“, MIT DER GRANT-OPTION;
# {usernama} ist der Benutzername für die Fernzugriffsanmeldung. Es wird nicht empfohlen, root zu verwenden;
# {password} ist das Anmeldekennwort für den Fernzugriff;
# „%“ stellt alle IPs dar. Versuchen Sie, wenn möglich, eine bestimmte IP oder ein bestimmtes IP-Segment FLUSH PRIVILEGES festzulegen.
# Berechtigungen aktualisieren

Verwenden Sie nach der Konfiguration Navicat oder andere Tools, um die Verbindung zu testen.

Hinweis: Sollte kein Zugriff möglich sein, prüfen Sie bitte, ob der Firewall-Port 3306 geöffnet ist und ob der Port in der Sicherheitsgruppe des Serveranbieters geöffnet ist.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So installieren Sie MySQL und Redis in Docker
  • Detaillierte Schritte zur Installation von Tomcat, MySQL und Redis mit Docker
  • So installieren Sie MySQL in Docker
  • Tutorial zur Installation von MySQL mit Docker und zur Implementierung einer Remote-Verbindung
  • So installieren Sie MySQL 8.0 in Docker
  • So installieren Sie MySQL und MariaDB in Docker
  • So installieren Sie allgemeine Komponenten (MySQL, Redis) in Docker
  • So installieren Sie MySQL8 in Docker
  • Docker-Installations- und Konfigurationsschritte für MySQL

<<:  JavaScript+html implementiert zufällige QR-Code-Verifizierung auf Frontend-Seiten

>>:  JavaScript + HTML zur Implementierung der Sliding-Verifizierung für Front-End-Seiten

Artikel empfehlen

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15 winx64

In diesem Artikel wird die Installations- und Kon...

Einführung in die Verwendung von Unicode-Zeichen in Webseiten (&#, \u usw.)

Die ersten Computer konnten nur ASCII-Zeichen ver...

So verwenden und begrenzen Sie Requisiten in React

Die Requisiten der Komponente (Requisiten sind ei...

Vue.js implementiert eine einfache Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Deaktivieren der Implementierungseigenschaften für Eingabetextfelder

Heute möchte ich einige sehr nützliche HTML-Tags z...

Der Unterschied zwischen HTML-Iframe und Frameset_PowerNode Java Academy

Einführung 1. <iframe>-Tag: Ein Iframe ist ...

React-Diagramm Serialisierung JSON Interpretation Fallanalyse

Das Ziel dieses Dokuments ist es, die JSON-Serial...

Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd

Docker ist eine sehr beliebte Containertechnologi...

Über die Implementierung des JavaScript-Karussells

Heute ist ein weiterer sehr praktischer Fall. All...

Lösung für den Fehler bei der Verbindung mit MySQL in Docker

Szenario: Nach der Installation der neuesten Vers...

Einführung in Javascript DOM, Knoten und Elementerfassung

Inhaltsverzeichnis DOM Knoten Elementknoten: Text...

Analyse der Ursache des Docker-Fehlers Beendet (1) vor 4 Minuten

Docker-Fehler 1. Überprüfen Sie die Ursache Docke...

Eine kurze Erläuterung zum Anpassen der Hostdatei in Docker

Inhaltsverzeichnis 1. Befehl 2. docker-compose.ym...