Methoden zum Bereitstellen von MySQL-Diensten in Docker und die dabei auftretenden Fallstricke

Methoden zum Bereitstellen von MySQL-Diensten in Docker und die dabei auftretenden Fallstricke

Ich habe vor kurzem Porter gelernt. Ich habe das Gefühl, dass ich so etwas Mächtiges noch nie zuvor gekannt habe. Ich habe den Prozess des Herumprobierens aufgezeichnet, damit meine Klassenkameraden ihn nachschlagen können.

Schritt 0: Ziehen Sie das offizielle MySQL-Image vom Docker Hub

docker pull mysql

Dann heißt es lange warten. Wenn Sie einen Spiegelbeschleuniger konfigurieren, ist die Geschwindigkeit natürlich etwas höher.

Schritt 1: Verwenden Sie den Befehl „Docker Images“, um das Image anzuzeigen

Sie werden sehen, dass wir hier bereits einen Spiegel von MySQL haben

Schritt 2: Starten Sie unser MySQL-Image und erstellen Sie einen MySQL-Container

Verwenden Sie den Befehl: docker run -d --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

Erklären Sie hier die Parameter:

-d bedeutet, dass es im Hintergrund ausgeführt wird und nicht mit dem aktuellen Befehlszeilenfenster beendet wird

--name gibt dem Container einen Alias, der zur zukünftigen Verwaltung des Containers verwendet werden kann

-p 3307: 3307 ordnet den Port 3307 des Hosts dem Port 3306 des MySQL-Containers zu.

-e MySQL-Containerumgebungskonfiguration

MYSQL_ROOT_PASSWORD=123456 gibt das Passwort für MySQL an. Der Standardbenutzername ist root. Beachten Sie, dass der Start fehlschlägt, wenn kein Passwort angegeben wird.

Schritt 3: Den MySQL-Container anzeigen, den wir gestartet haben

Verwenden Sie den Befehl: docker ps

Wie Sie sehen, läuft unser MySQL-Container bereits. Docker weist dem MySQL-Container zur einfacheren Verwaltung eine Containernummer zu. Außerdem wird die von uns festgelegte Portzuordnung angezeigt.

Zu diesem Zeitpunkt denken manche vielleicht: „Auch wenn der MySQL-Container problemlos läuft, sagen Sie uns nur den Port. Wie können wir dann seine IP erfahren?“ Das glaube ich Ihnen nicht, Sie sind ein schlechter alter Mann.

Nein, nein, nein. Wir können docker inspect -f = '{{ verwenden. Verwenden Sie den Befehl NetworkSettings.IPAddress}}'5fef288f221f, um die IP-Adresse des Containers anzuzeigen. Beachten Sie, dass Sie am Ende direkt die ID des Containers schreiben können, den Sie anzeigen möchten. Diese Leute im Internet sind sehr böse und werden Ihnen ein <> hinzufügen, was Sie sehr deprimieren wird. Folgen Sie einfach meiner Methode und Sie werden Recht haben.

Beachten Sie außerdem, dass Sie, wenn Sie zur Remoteverwaltung eine externe Verbindung zu unserem MySQL-Container herstellen möchten, den Host des MySQL-Root-Kontos im Container konfigurieren und in einen Platzhalter % ändern müssen, damit sich jeder Host mit unserem MySQL verbinden kann. Die spezifische Methode lautet wie folgt:

Geben Sie den MySQl-Container ein: Verwenden Sie den Befehl docker exec, -it ist ein Parameter, und bash bedeutet, eine interaktive Schnittstelle zu erstellen

Melden Sie sich beim MySQL-Server an: Melden Sie sich mit dem Root-Benutzer bei MySQL an. Nach Eingabe des Passworts können wir sehen, dass wir MySQL aufgerufen haben.

Verwenden Sie den Befehl „show database;“, um die Datenbank anzuzeigen (achten Sie darauf, das letzte Semikolon nicht zu vergessen, alle MySQL-Befehle müssen ein Semikolon enthalten)

Wie Sie sehen, werden unsere Datenbanken aufgelistet. Verwenden Sie dann den Befehl mysql;, um diese MySQL-Datenbank aufzurufen (ist das etwas verwirrend? Hahaha, die MySQL-Datenbank bezieht sich hier auf diese Datenbank, okay, ich kann es immer noch nicht klar erklären).

Verwenden Sie dann den Befehl „show tables;“, um alle Tabellen aufzulisten

Wie Sie sehen, gibt es viele Tabellen. Dies sind alles MySQL-Konfigurationen. Achten Sie nicht darauf. Wir müssen nur eine Benutzertabelle ändern.

Verwenden Sie den SQL-Befehl: update user set host ='%'where user ='root';

Bei einigen Schülern kann es zu einer Fehlermeldung kommen, da Ihr MySQL mehrere Root-Benutzer haben kann. Verwenden Sie daher den folgenden Befehl.

Benutzersatz aktualisieren: Host='%', wobei Benutzer='root' und Host='localhost';

Nachdem Sie die obigen Schritte konfiguriert haben, können Sie die Verbindung testen. Wenn Sie eine Verbindung herstellen können, herzlichen Glückwunsch, Sie haben Glück gehabt.

Wenn Sie keine Verbindung herstellen können, herzlichen Glückwunsch, denn das MySQL-Image, das Sie heruntergeladen haben, ist mysql8.

Möglicherweise tritt der folgende Fehler auf

An diesem Punkt ist die Konfiguration abgeschlossen. Verwenden Sie zum Beenden den Befehl „exit;“.

Testen der Remoteverbindung

Schritt 4: Daten in unseren MySQL-Container importieren

Obwohl unser MySQL-Container läuft, sind darin keine Daten. Sie können die Datenbank mit der folgenden Methode in Docker in MySQL importieren:

Importieren Sie zunächst die Datei in den Container. Auf cp folgt der Pfad der SQL-Datei, die Sie importieren möchten.

#docker cp **.sql mysql:/root/
Geben Sie den Container ein#docker exec -it mysql bash
Importieren Sie die Datei in die Datenbank# mysql -uroot -p [Datenbankname] < ***.sql

mysql -h localhost -u root -p (geben Sie mysql ein)
Datenbank abc erstellen; (Datenbank erstellen)
Datenbanken anzeigen; (Sie können alle vorhandenen Datenbanken und die gerade erstellte Datenbank abc sehen)
abc verwenden; (abc-Datenbank eingeben)
Tabellen anzeigen; (alle Tabellen unter der abc-Datenbank anzeigen, leer)
Quelle /var/test.sql (Datenbanktabelle importieren)
Tabellen anzeigen; (alle Tabellen unter der abc-Datenbank anzeigen, und Sie können die Tabelle sehen)
Beschreibung der Verschmutzung; (siehe Tabellenstrukturdesign)
wählen Sie * aus Verschmutzung;
exit (oder Strg + C), um MySQL zu beenden

Zusammenfassen

Oben ist die vom Herausgeber vorgestellte Methode zum Bereitstellen des MySQL-Dienstes in Docker. Ich hoffe, sie ist für alle hilfreich. 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:
  • Detaillierte Erklärung zur Verwendung der MySQL-Datenbank im Docker (Zugriff im LAN)
  • Lösung für den Fehler bei der Verbindung mit MySQL in Docker
  • So installieren Sie MySQL 8.0 in Docker
  • Detaillierte Erklärung zum Importieren/Exportieren von MySQL-Daten im Docker-Container
  • Installieren und Ausführen einer MySQL-Instanz auf Docker
  • Eine praktische Aufzeichnung eines Docker-Login-MySQL-Fehlerproblems

<<:  Vollständige Schritte zur Verwendung von Echarts und Unterverpackungen im WeChat Mini-Programm

>>:  Tutorial zur Master-Slave-Konfiguration der MySQL-Datenbank unter Windows

Artikel empfehlen

Mysql-Optimierungstool (empfohlen)

Vorwort Als ich heute auf GitHub gestöbert habe, ...

So verbinden Sie Navicat mit der Docker-Datenbank auf dem Server

Starten Sie den MySQL-Container in Docekr Verwend...

So implementieren Sie eine verschachtelte if-Methode in Nginx

Nginx unterstützt weder verschachtelte if-Anweisu...

Implementierungscode zur Installation von vsftpd in Ubuntu 18.04

Installieren Sie vsftpd $ sudo apt-get installier...

Wie stellt MySQL die Datenintegrität sicher?

Die Bedeutung von Datenkonsistenz und -integrität...

Beispiel für einen Fork- und Mutex-Lock-Prozess im Linux-Multithreading

Inhaltsverzeichnis Frage: 1. Erster Versuch 2. Ra...

Detailliertes Tutorial zum Herunterladen von MySQL unter Windows 10

MySQL-Versionen werden in Enterprise Edition und ...

Beispiel und Lösung für einen SQL-Injection-Sicherheitslückenprozess

Codebeispiel: öffentliche Klasse JDBCDemo3 { öffe...

So verwenden Sie Web-Frontend-Vektorsymbole

Vorwort Beim Schreiben von Frontend-Seiten verwen...