Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Wie baut man einen hochverfügbaren MySQL-Container-Cluster unter Linux auf?

Wie baut man einen hochverfügbaren MySQL-Container-Cluster unter Linux auf?

Aug 01, 2023 am 10:13 AM
mysql linux 容器 搭建高可用的mysql容器集群

Wie baut man einen hochverfügbaren MySQL-Container-Cluster unter Linux auf?

Mit dem Aufkommen von Cloud Computing und Container-Technologie beginnen immer mehr Unternehmen, Container zum Erstellen von Anwendungen zu verwenden. Als eine der am häufigsten verwendeten relationalen Datenbanken kann MySQL auch durch Containerisierung eine hohe Verfügbarkeit erreichen. In diesem Artikel stellen wir vor, wie man einen hochverfügbaren MySQL-Container-Cluster unter Linux erstellt, und stellen relevante Codebeispiele bereit.

Schritt 1: Bereiten Sie die Umgebung vor

Zunächst benötigen Sie einen Linux-Host, um einen MySQL-Container-Cluster aufzubauen. Stellen Sie sicher, dass Docker und Docker Compose auf diesem Host installiert sind. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo apt-get install docker-compose
Nach dem Login kopieren

Schritt 2: Erstellen Sie ein Docker-Image

Als nächstes müssen Sie ein MySQL-Image erstellen, um den Container auszuführen. Der Image-Erstellungsprozess kann über Dockerfile definiert werden. Erstellen Sie eine Datei mit dem Namen Dockerfile und fügen Sie darin den folgenden Inhalt hinzu: Dockerfile的文件,并在其中添加以下内容:

FROM mysql:8.0

ENV MYSQL_ROOT_PASSWORD your_password
ENV MYSQL_DATABASE your_database

COPY your_script.sql /docker-entrypoint-initdb.d/
Nach dem Login kopieren

在上述代码中,your_password为MySQL的root用户密码,your_database为要创建的数据库名称,your_script.sql为要执行的初始化脚本文件。可以根据实际情况修改这些参数。

保存并退出文件后,使用以下命令来构建镜像:

$ sudo docker build -t your_image_name .
Nach dem Login kopieren

其中,your_image_name是你给镜像起的名称。

步骤三:创建Docker Compose文件

在搭建MySQL容器集群之前,需要创建一个docker-compose.yml文件来定义集群中的容器。创建一个名为docker-compose.yml的文件,并在其中添加以下内容:

version: '3'

services:
  mysql1:
    image: your_image_name
    restart: always
    ports:
      - 3306:3306
    volumes:
      - ./mysql1:/var/lib/mysql
    environment:
      - MYSQL_REPLICATION_MODE=master
      - MYSQL_REPLICATION_USER=repl_user
      - MYSQL_REPLICATION_PASSWORD=repl_password

  mysql2:
    image: your_image_name
    restart: always
    volumes:
      - ./mysql2:/var/lib/mysql
    environment:
      - MYSQL_REPLICATION_MODE=slave
      - MYSQL_MASTER_HOST=mysql1
      - MYSQL_MASTER_PORT=3306
      - MYSQL_MASTER_USER=repl_user
      - MYSQL_MASTER_PASSWORD=repl_password
Nach dem Login kopieren

在上述代码中,your_image_name是之前构建的MySQL镜像名称。mysql1mysql2分别表示两个MySQL容器的名称。MYSQL_REPLICATION_MODE参数设置容器的复制模式,master表示主节点,slave表示从节点。MYSQL_REPLICATION_USERMYSQL_REPLICATION_PASSWORD为复制用户的用户名和密码。MYSQL_MASTER_HOSTMYSQL_MASTER_PORT为主节点的地址和端口。MYSQL_MASTER_USERMYSQL_MASTER_PASSWORD为连接主节点的用户名和密码。

步骤四:启动容器集群

保存并退出文件后,使用以下命令来启动容器集群:

$ sudo docker-compose up -d
Nach dem Login kopieren

通过-d参数可使容器在后台运行。

步骤五:验证容器状态

使用以下命令可以查看容器的状态:

$ sudo docker-compose ps
Nach dem Login kopieren

可以看到容器的状态是running,表示容器运行正常。

步骤六:测试容器集群

现在,可以测试MySQL容器集群是否正常工作。首先,连接到MySQL容器的主节点,并创建一个测试数据库:

$ sudo docker exec -it mysql1 mysql -uroot -p
Enter password: your_password
mysql> CREATE DATABASE test;
mysql> EXIT;
Nach dem Login kopieren

然后,连接到从节点,并验证是否能够读取到主节点上的数据:

$ sudo docker exec -it mysql2 mysql -uroot -p
Enter password: your_password
mysql> USE test;
mysql> SELECT * FROM your_table;
mysql> EXIT;
Nach dem Login kopieren

其中,your_tablerrreee

Im obigen Code ist your_password das Root-Benutzerkennwort von MySQL, your_database ist der Name der zu erstellenden Datenbank und <code>your_script.sql ist die auszuführende Initialisierungsskriptdatei. Diese Parameter können entsprechend den tatsächlichen Bedingungen geändert werden.

Nachdem Sie die Datei gespeichert und geschlossen haben, verwenden Sie den folgenden Befehl, um das Bild zu erstellen:

rrreee

wobei your_image_name der Name ist, den Sie dem Bild gegeben haben. 🎜🎜Schritt 3: Erstellen Sie eine Docker Compose-Datei🎜🎜Bevor Sie einen MySQL-Container-Cluster erstellen, müssen Sie eine docker-compose.yml-Datei erstellen, um die Container im Cluster zu definieren. Erstellen Sie eine Datei mit dem Namen docker-compose.yml und fügen Sie den folgenden Inhalt hinzu: 🎜rrreee🎜Im obigen Code ist your_image_name der Name des zuvor erstellten MySQL-Images. mysql1 und mysql2 repräsentieren jeweils die Namen zweier MySQL-Container. Der Parameter MYSQL_REPLICATION_MODE legt den Replikationsmodus des Containers fest, master stellt den Master-Knoten dar und slave stellt den Slave-Knoten dar. MYSQL_REPLICATION_USER und MYSQL_REPLICATION_PASSWORD sind der Benutzername und das Passwort des Replikationsbenutzers. MYSQL_MASTER_HOST und MYSQL_MASTER_PORT sind die Adressen und Ports des Masterknotens. MYSQL_MASTER_USER und MYSQL_MASTER_PASSWORD sind der Benutzername und das Passwort für die Verbindung zum Masterknoten. 🎜🎜Schritt 4: Starten Sie den Container-Cluster 🎜🎜Nach dem Speichern und Beenden der Datei verwenden Sie den folgenden Befehl, um den Container-Cluster zu starten: 🎜rrreee🎜Der Parameter -d kann verwendet werden, um den Container auszuführen im Hintergrund. 🎜🎜Schritt 5: Containerstatus überprüfen 🎜🎜Verwenden Sie den folgenden Befehl, um den Status des Containers zu überprüfen: 🎜rrreee🎜Sie können sehen, dass der Status des Containers running ist, was bedeutet, dass der Container ausgeführt wird normalerweise. 🎜🎜Schritt 6: Testen Sie den Container-Cluster🎜🎜Jetzt können Sie testen, ob der MySQL-Container-Cluster ordnungsgemäß funktioniert. Stellen Sie zunächst eine Verbindung zum Masterknoten des MySQL-Containers her und erstellen Sie eine Testdatenbank: 🎜rrreee🎜 Stellen Sie dann eine Verbindung zum Slave-Knoten her und überprüfen Sie, ob die Daten auf dem Masterknoten gelesen werden können: 🎜rrreee🎜 Darunter your_table code> ist der Name der Tabelle, die Sie auf dem Primärknoten erstellt haben. 🎜🎜Durch die oben genannten Schritte wurde erfolgreich ein hochverfügbarer MySQL-Containercluster erstellt. Durch die Replikation der Daten des Master-Knotens auf mehrere Slave-Knoten können Datenredundanz und hohe Verfügbarkeit erreicht werden. Fällt der Master-Knoten aus, kann aus den Slave-Knoten ein neuer Master-Knoten gewählt werden, der weiterhin Dienste bereitstellt. 🎜🎜Ich hoffe, dieser Artikel kann Ihnen beim Aufbau eines hochverfügbaren MySQL-Containerclusters unter Linux helfen. Ich wünsche dir viel Erfolg! 🎜

Das obige ist der detaillierte Inhalt vonWie baut man einen hochverfügbaren MySQL-Container-Cluster unter Linux auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Unterschied zwischen CentOS und Ubuntu Unterschied zwischen CentOS und Ubuntu Apr 14, 2025 pm 09:09 PM

Die wichtigsten Unterschiede zwischen CentOS und Ubuntu sind: Ursprung (CentOS stammt von Red Hat, für Unternehmen; Ubuntu stammt aus Debian, für Einzelpersonen), Packungsmanagement (CentOS verwendet yum, konzentriert sich auf Stabilität; Ubuntu verwendet apt, für hohe Aktualisierungsfrequenz), Support Cycle (Centos) (CENTOS bieten 10 Jahre. Tutorials und Dokumente), Verwendungen (CentOS ist auf Server voreingenommen, Ubuntu ist für Server und Desktops geeignet). Weitere Unterschiede sind die Einfachheit der Installation (CentOS ist dünn)

CentOS stoppt die Wartung 2024 CentOS stoppt die Wartung 2024 Apr 14, 2025 pm 08:39 PM

CentOS wird 2024 geschlossen, da seine stromaufwärts gelegene Verteilung RHEL 8 geschlossen wurde. Diese Abschaltung wirkt sich auf das CentOS 8 -System aus und verhindert, dass es weiterhin Aktualisierungen erhalten. Benutzer sollten eine Migration planen, und empfohlene Optionen umfassen CentOS Stream, Almalinux und Rocky Linux, um das System sicher und stabil zu halten.

So installieren Sie CentOs So installieren Sie CentOs Apr 14, 2025 pm 09:03 PM

CentOS -Installationsschritte: Laden Sie das ISO -Bild herunter und verbrennen Sie bootfähige Medien. Starten und wählen Sie die Installationsquelle; Wählen Sie das Layout der Sprache und Tastatur aus. Konfigurieren Sie das Netzwerk; Partition die Festplatte; Setzen Sie die Systemuhr; Erstellen Sie den Root -Benutzer; Wählen Sie das Softwarepaket aus; Starten Sie die Installation; Starten Sie nach Abschluss der Installation von der Festplatte neu und starten Sie von der Festplatte.

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Was sind die Backup -Methoden für Gitlab auf CentOS? Was sind die Backup -Methoden für Gitlab auf CentOS? Apr 14, 2025 pm 05:33 PM

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

So rufen Sie Docker lnmp an So rufen Sie Docker lnmp an Apr 15, 2025 am 11:15 AM

Docker LNMP Container Anrufschritte: Führen Sie den Container aus: Docker Run -d --Name LNMP -Container -P 80:80 -P 443: 443 LNMP -Stack, um den Container IP zu erhalten: Docker Inspecy Lnmp -Container | GREP iPaddress Access Website: http: // & lt; Container IP & gt;/index.phpssh Access: Docker Exec -it lnmp -container Bash Access MySQL: Mysql -U Roo

Wie man in CentOS fester Festplatten montiert Wie man in CentOS fester Festplatten montiert Apr 14, 2025 pm 08:15 PM

CentOS -Festplattenhalterung ist in die folgenden Schritte unterteilt: Bestimmen Sie den Namen der Festplattengeräte (/dev/sdx); Erstellen Sie einen Mountspunkt (es wird empfohlen, /mnt /newDisk zu verwenden). Führen Sie den Befehl montage (mont /dev /sdx1 /mnt /newdisk) aus; Bearbeiten Sie die Datei /etc /fstab, um eine permanente Konfiguration des Montings hinzuzufügen. Verwenden Sie den Befehl uMount, um das Gerät zu deinstallieren, um sicherzustellen, dass kein Prozess das Gerät verwendet.

See all articles