Maison Opération et maintenance exploitation et maintenance Linux Comment créer un cluster de conteneurs MySQL hautement disponible sous Linux ?

Comment créer un cluster de conteneurs MySQL hautement disponible sous Linux ?

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

Comment créer un cluster de conteneurs MySQL hautement disponible sous Linux ?

Avec l'essor du cloud computing et de la technologie des conteneurs, de plus en plus d'entreprises commencent à utiliser des conteneurs pour créer des applications. En tant que base de données relationnelle les plus couramment utilisées, MySQL peut également atteindre une haute disponibilité grâce à la conteneurisation. Dans cet article, nous présenterons comment créer un cluster de conteneurs MySQL hautement disponible sur Linux et fournirons des exemples de code pertinents.

Étape 1 : Préparez l'environnement

Tout d'abord, vous avez besoin d'un hôte Linux pour créer un cluster de conteneurs MySQL. Assurez-vous que Docker et Docker Compose sont installés sur cet hôte. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo apt-get install docker-compose
Copier après la connexion

Étape 2 : Créer une image Docker

Ensuite, vous devez créer une image MySQL pour exécuter le conteneur. Le processus de création d'image peut être défini via Dockerfile. Créez un fichier nommé Dockerfile et ajoutez-y le contenu suivant : Dockerfile的文件,并在其中添加以下内容:

FROM mysql:8.0

ENV MYSQL_ROOT_PASSWORD your_password
ENV MYSQL_DATABASE your_database

COPY your_script.sql /docker-entrypoint-initdb.d/
Copier après la connexion

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

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

$ sudo docker build -t your_image_name .
Copier après la connexion

其中,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
Copier après la connexion

在上述代码中,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
Copier après la connexion

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

步骤五:验证容器状态

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

$ sudo docker-compose ps
Copier après la connexion

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

步骤六:测试容器集群

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

$ sudo docker exec -it mysql1 mysql -uroot -p
Enter password: your_password
mysql> CREATE DATABASE test;
mysql> EXIT;
Copier après la connexion

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

$ sudo docker exec -it mysql2 mysql -uroot -p
Enter password: your_password
mysql> USE test;
mysql> SELECT * FROM your_table;
mysql> EXIT;
Copier après la connexion

其中,your_tablerrreee

Dans le code ci-dessus, your_password est le mot de passe de l'utilisateur root de MySQL, your_database code> est le nom de la base de données à créer et votre_script.sql est le fichier de script d'initialisation à exécuter. Ces paramètres peuvent être modifiés en fonction des conditions réelles.

Après avoir enregistré et quitté le fichier, utilisez la commande suivante pour créer l'image :

rrreee

votre_nom_image est le nom que vous avez donné à l'image. 🎜🎜Étape 3 : Créer un fichier Docker Compose🎜🎜Avant de créer un cluster de conteneurs MySQL, vous devez créer un fichier docker-compose.yml pour définir les conteneurs dans le cluster. Créez un fichier appelé docker-compose.yml et ajoutez-y le contenu suivant : 🎜rrreee🎜Dans le code ci-dessus, your_image_name est le nom de l'image MySQL créée précédemment. mysql1 et mysql2 représentent respectivement les noms de deux conteneurs MySQL. Le paramètre MYSQL_REPLICATION_MODE définit le mode de réplication du conteneur, master représente le nœud maître et slave représente le nœud esclave. MYSQL_REPLICATION_USER et MYSQL_REPLICATION_PASSWORD sont le nom d'utilisateur et le mot de passe de l'utilisateur de réplication. MYSQL_MASTER_HOST et MYSQL_MASTER_PORT sont les adresses et les ports du nœud maître. MYSQL_MASTER_USER et MYSQL_MASTER_PASSWORD sont le nom d'utilisateur et le mot de passe pour se connecter au nœud maître. 🎜🎜Étape 4 : Démarrez le cluster de conteneurs 🎜🎜Après avoir enregistré et quitté le fichier, utilisez la commande suivante pour démarrer le cluster de conteneurs : 🎜rrreee🎜Le paramètre -d peut être utilisé pour faire fonctionner le conteneur en arrière-plan. 🎜🎜Étape 5 : Vérifier l'état du conteneur 🎜🎜Utilisez la commande suivante pour vérifier l'état du conteneur : 🎜rrreee🎜Vous pouvez voir que l'état du conteneur est running, ce qui signifie que le conteneur est en cours d'exécution normalement. 🎜🎜Étape 6 : Testez le cluster de conteneurs🎜🎜Maintenant, vous pouvez tester si le cluster de conteneurs MySQL fonctionne correctement. Tout d'abord, connectez-vous au nœud maître du conteneur MySQL et créez une base de données de test : 🎜rrreee🎜 Ensuite, connectez-vous au nœud esclave et vérifiez si les données sur le nœud maître sont lisibles : 🎜rrreee🎜 Parmi eux, votre_table est le nom de la table que vous avez créée sur le nœud principal. 🎜🎜Grâce aux étapes ci-dessus, un cluster de conteneurs MySQL hautement disponible a été créé avec succès. En répliquant les données du nœud maître sur plusieurs nœuds esclaves, la redondance des données et la haute disponibilité peuvent être obtenues. Si le nœud maître tombe en panne, un nouveau nœud maître peut être élu parmi les nœuds esclaves et continuer à fournir des services. 🎜🎜J'espère que cet article pourra vous aider à créer un cluster de conteneurs MySQL hautement disponible sur Linux. Je vous souhaite du succès ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Différence entre Centos et Ubuntu Différence entre Centos et Ubuntu Apr 14, 2025 pm 09:09 PM

Les principales différences entre Centos et Ubuntu sont: l'origine (Centos provient de Red Hat, pour les entreprises; Ubuntu provient de Debian, pour les particuliers), la gestion des packages (Centos utilise Yum, se concentrant sur la stabilité; Ubuntu utilise APT, pour une fréquence de mise à jour élevée), le cycle de support (CentOS fournit 10 ans de soutien, Ubuntu fournit un large soutien de LT tutoriels et documents), utilisations (Centos est biaisé vers les serveurs, Ubuntu convient aux serveurs et aux ordinateurs de bureau), d'autres différences incluent la simplicité de l'installation (Centos est mince)

Centos arrête la maintenance 2024 Centos arrête la maintenance 2024 Apr 14, 2025 pm 08:39 PM

Centos sera fermé en 2024 parce que sa distribution en amont, Rhel 8, a été fermée. Cette fermeture affectera le système CentOS 8, l'empêchant de continuer à recevoir des mises à jour. Les utilisateurs doivent planifier la migration et les options recommandées incluent CentOS Stream, Almalinux et Rocky Linux pour garder le système en sécurité et stable.

Comment installer CentOS Comment installer CentOS Apr 14, 2025 pm 09:03 PM

Étapes d'installation de CentOS: Téléchargez l'image ISO et Burn Bootable Media; démarrer et sélectionner la source d'installation; sélectionnez la langue et la disposition du clavier; configurer le réseau; partitionner le disque dur; définir l'horloge système; créer l'utilisateur racine; sélectionnez le progiciel; démarrer l'installation; Redémarrez et démarrez à partir du disque dur une fois l'installation terminée.

Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Quelles sont les méthodes de sauvegarde pour Gitlab sur Centos Quelles sont les méthodes de sauvegarde pour Gitlab sur Centos Apr 14, 2025 pm 05:33 PM

La politique de sauvegarde et de récupération de GitLab dans le système CentOS afin d'assurer la sécurité et la récupérabilité des données, Gitlab on CentOS fournit une variété de méthodes de sauvegarde. Cet article introduira plusieurs méthodes de sauvegarde courantes, paramètres de configuration et processus de récupération en détail pour vous aider à établir une stratégie complète de sauvegarde et de récupération de GitLab. 1. MANUEL BACKUP Utilisez le Gitlab-RakegitLab: Backup: Créer la commande pour exécuter la sauvegarde manuelle. Cette commande sauvegarde des informations clés telles que le référentiel Gitlab, la base de données, les utilisateurs, les groupes d'utilisateurs, les clés et les autorisations. Le fichier de sauvegarde par défaut est stocké dans le répertoire / var / opt / gitlab / backups. Vous pouvez modifier / etc / gitlab

Comment appeler docker lnmp Comment appeler docker lnmp Apr 15, 2025 am 11:15 AM

Docker LNMP Container Call Étapes: Exécutez le conteneur: docker run -d --name lnmp-container -p 80:80 -p 443: 443 lnmp-stack pour obtenir le conteneur ip: docker inspect lnmp-container | Site Web d'accès Grep iPadress: http: // & lt; contener ip & gt; /index.phpssh Access: docker exec -it lnmp-container bash access mysql: mysql -u roo

Comment monter un disque dur dans les centos Comment monter un disque dur dans les centos Apr 14, 2025 pm 08:15 PM

Le support de disque dur CentOS est divisé en étapes suivantes: Déterminez le nom du périphérique du disque dur (/ dev / sdx); créer un point de montage (il est recommandé d'utiliser / mnt / newdisk); Exécutez la commande Mount (mont / dev / sdx1 / mnt / newdisk); modifier le fichier / etc / fstab pour ajouter une configuration de montage permanent; Utilisez la commande umount pour désinstaller l'appareil pour vous assurer qu'aucun processus n'utilise l'appareil.

See all articles