Ich habe es Ihnen bereits vorgestellt: Docker (Bereitstellung allgemeiner Anwendungen): Docker Deploy Nginx Docker stellt mysql:5.7.26 bereit# Laden Sie das Image docker pull mysql:5.7.26 herunter # Das Bild anzeigen docker images|grep mysql # Starten Sie das Container-Image. Es wird empfohlen, den folgenden Docker-Run-Befehl unter /usr/local/workspace/mysql auszuführen: docker run -p 13306:3306 --name my-mysql -v $PWD/conf:/etc/mysql -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 # Es wird empfohlen, den Pfad fest zu codieren: docker run -p 13306:3306 --name my-mysql -v /usr/local/workspace/mysql/conf:/etc/mysql -v /usr/local/workspace/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 Befehlserklärung: -p 13306:3306 ordnet den Port 3306 des Containers dem Port 3306 des Hosts zu --name my-mysql Der Container wird nach dem Start my-mysql genannt -v $PWD/conf:/etc/mysql mountet das conf/-Verzeichnis im aktuellen Verzeichnis des Hosts in /etc/mysql des Containers (das conf-Verzeichnis ist die Konfigurationsdatei von MySQL, es ist in Ordnung, wenn es nicht gemountet ist) -v $PWD/logs:/logs mountet das Logs-Verzeichnis unter dem aktuellen Verzeichnis des Hosts in /logs des Containers (das Logs-Verzeichnis ist das Log-Verzeichnis von MySQL und hat keine Wirkung, wenn es nicht gemountet ist) -v $PWD/data:/var/lib/mysql mountet das Datenverzeichnis im aktuellen Verzeichnis des Hosts in das /var/lib/mysql des Containers (das Datenverzeichnis ist der Speicherpfad der für MySQL konfigurierten Datendateien. Es wird empfohlen, es zum Speichern von Daten zu mounten. Wenn der Container heruntergefahren wird, können die Daten erneut gemountet werden.) -e MYSQL_ROOT_PASSWORD=123456 Initialisiert das Passwort des Root-Benutzers Überprüfen des Startstatus des Containers[xxx@xxx-xx-xxx mysql]# docker ps|grep mysql 5291ed3fe987 mysql:5.7.26 "docker-entrypoint.s?? vor 5 Minuten Up 5 Minuten 33060/tcp, 0.0.0.0:13306->3306/tcp my-mysql Geben Sie den MySQL-Container ein# Anmeldecontainer [root@cbov10-sso55-xxx ~]# docker exec -it my-mysql bash root@5291ed3fe987:/# ls bin dev entrypoint.sh home lib64 media opt root sbin sys usr booten docker-entrypoint-initdb.d usw. lib logs mnt proc run srv tmp var # Anmeldung mysqlroot@5291ed3fe987:/# mysql -uroot -p --default-character-set=utf8 Passwort eingeben: Willkommen beim MySQL-Monitor. Befehle enden mit ; oder \g. Ihre MySQL-Verbindungs-ID ist 2 Serverversion: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten. Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen Eigentümer. Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. mysql> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | |mysql | | Leistungsschema | |System| +--------------------+ 4 Zeilen im Satz (0,00 Sek.) Einrichten der Remote-Anmeldung bei MySQLmysql> mysql verwenden Einlesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten Datenbank geändert mysql> wähle Host, Benutzer aus Benutzer; +-------------+------------------+ | Gastgeber | Benutzer | +-------------+------------------+ | % | Wurzel | | lokaler Host | mysql.session | | lokaler Host | mysql.sys | | lokaler Host | Wurzel | | lokaler Host | Test | +--------------+------------------+ 5 Zeilen im Satz (0,00 Sek.) # Richten Sie den Root-Benutzer so ein, dass er sich von überall aus remote anmelden kann und alle Betriebsberechtigungen für alle Bibliotheken hat. (Das Unternehmen darf dies nicht tun, da die Angriffsfläche zu groß ist.) Dies dient nur zu Testzwecken. mysql> GEWÄHREN SIE ALLE PRIVILEGIEN FÜR *.* AN 'root'@'%', IDENTIFIZIERT DURCH '123456', MIT GRANT-OPTION; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) # Berechtigungen aktualisierenmysql> FLUSH PRIVILEGES; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) # MySQL beenden mysql> beenden Tschüss Bezüglich der MySQL-Autorisierung können Sie Baidu selbst durchsuchen. Hier ist die Empfehlung MySQL-Berechtigungsverwaltung MySQL-Berechtigungskontrolle Remote-AnmeldetestVerwenden Sie das Datenbankverbindungstool, um eine Verbindung mit der Host-IP + dem vom Host freigegebenen Port herzustellen. Als wir den Container vorhin gestartet haben, hat -p13306:3306 angezeigt, dass der Host-Port 13306 dem Port 3306 des Containers zugeordnet ist. Wenn unser Host, also die IP-Adresse des Servers, 10.10.10.11 ist Die mit 10.10.10.11:13306 verbundene Datenbank sollte verbunden sein. Es wird empfohlen, zum Testen eine neue Testdatenbank wie folgt zu erstellen Docker, MySQL-Neustartproblem (gehen die Daten verloren?)# Container anzeigen [root@cbov10-sso55-113 mysql]# docker ps | grep mysql 5291ed3fe987 mysql:5.7.26 "docker-entrypoint.s?? vor 4 Stunden Up 4 Stunden 33060/tcp, 0.0.0.0:13306->3306/tcp my-mysql # Stoppen Sie den Container (5291ed3fe987 ist die MySQL-Container-ID) [root@cbov10-sso55-113 mysql]# Docker-Stop 5291ed3fe987 5291ed3fe987 # Container löschen [root@cbov10-sso55-113 mysql]# docker rm 5291ed3fe987 5291ed3fe987 Gehen Sie zu unserem ursprünglichen Mount-Verzeichnis, um dies zu überprüfen Das Mount-Host-Verzeichnis ist /usr/local/workspace/mysql, [root@cbov10-sso55-xxx mysql]# cd Daten/ [root@cbov10-sso55-xxx Daten]# ls auto.cnf ca.pem Client-Key.pem ibdata1 ib_logfile1 Leistungsschema public_key.pem Server-Key.pem Test ca-key.pem Client-Zertifikat.pem ib_buffer_pool ib_logfile0 MySQL private_key.pem Server-Zertifikat.pem sys Die Datendateien sind noch da! Lassen Sie uns erneut ausführen # Beachten Sie, dass das Verzeichnis mit dem gemounteten Host-Verzeichnis übereinstimmen muss. Der Befehl, der zum ersten Mal in /usr/local/workspace/mysql ausgeführt wird, sollte sich dieses Mal auch im selben Verzeichnis befinden. # Natürlich gibt es kein Problem, wenn Sie einen festen Pfad schreiben [root@cbov10-sso55-xxx mysql]# docker run -p 13306:3306 --name my-mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 74c91431533ebb9bbfd3a1123b3f910f54770a08ad08c3c37cbbb996d29e0428 # Hier können wir sehen, dass sich die Container-ID geändert hat [root@cbov10-sso55-xxx mysql]# docker ps |grep mysql 74c91431533e mysql:5.7.26 "docker-entrypoint.s?? vor 16 Sekunden Up 15 Sekunden 33060/tcp, 0.0.0.0:13306->3306/tcp my-mysql # Geben Sie den Container ein [root@cbov10-sso55-xxx mysql]# docker exec -it bash 74c91431533e Fehler: Kein solcher Container: bash [root@cbov10-sso55-xxx mysql]# docker exec -it 74c91431533e bash root@74c91431533e:/#mysql -u root -p Passwort eingeben: Willkommen beim MySQL-Monitor. Befehle enden mit ; oder \g. Ihre MySQL-Verbindungs-ID ist 2 Serverversion: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten. Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen Eigentümer. Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. mysql> Datenbanken anzeigen; +--------------------+ | Datenbank | +--------------------+ | Informationsschema | |mysql | | Leistungsschema | |System| | Prüfung | +--------------------+ 5 Zeilen im Satz (0,00 Sek.) Habe festgestellt, dass die Testdatenbank auch vorhanden ist! Die Größe der Datendatei kann auch vor und nach dem Löschen des MySQL-Containers überprüft werden. Leser können es selbst ausprobieren. Wenn die Hostdatei ordnungsgemäß gespeichert wird, gehen die Daten nicht verloren. veranschaulichen: Tatsächlich ist die Produktion viel komplizierter als dieser Test. Es ist wirklich schwierig, die Probleme von MySQL-Clustern, Master-Slaves, Datensynchronisation, Netzwerken usw. mit Docker zu lösen. Die Verwaltung von MySQL-Containern oder die Verwaltung von Stateful-Anwendungen erfordert ein ausgefeilteres Tool, das berühmte Kubernetes-Projekt. empfehlen Offizielle Docker-Website Offizielle Kubernetes-Website Dies ist das Ende dieses Artikels über die Bereitstellung von MySQL durch Docker (Docker-Bereitstellung allgemeiner Anwendungen). Weitere verwandte Inhalte zur Bereitstellung von MySQL durch Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Verständnis und Beispielcode des Vue-Standardslots
>>: So legen Sie einen gepunkteten Rahmen in HTML fest
1. Was ist Docker? (1) Docker ist ein Open-Source...
MySQL meldet einen Fehler beim Ausführen einer Ab...
Hier ist ein Fall, den Frontend-Entwickler kennen...
3D-Koordinatenkonzept Wenn sich ein Element dreht...
Die Lösung für das Problem, dass Navicat keine Re...
Lassen Sie uns zu Beginn darüber sprechen, was La...
Der Ereignisplaner in MySQL, EVENT, wird auch als...
1. Installieren Sie MySQL: Verwenden Sie die folg...
Da die Version, die ich beim Lernen verwendet hab...
In diesem Artikel wird der spezifische Code von J...
Der Artikel zeichnet hauptsächlich den einfachen ...
Auf alle Orchestrierungsdateien und Konfiguration...
In diesem Artikel untersuchen wir, warum async/aw...
Beschreibung: Stellen Sie einen Timer ein, um den ...
Inhaltsverzeichnis 8. Kreisförmiger Fortschritts-...