Table des matières
Cet article partage principalement avec vous la réplication maître-esclave Mysql basée sur Docker, en espérant aider tout le monde.
Présentation de l'environnement
Configurer Master
Maison interface Web js tutoriel Explication détaillée de la réplication maître-esclave Mysql de Docker

Explication détaillée de la réplication maître-esclave Mysql de Docker

Feb 07, 2018 pm 02:39 PM
docker mysql 详解

Cet article partage principalement avec vous la réplication maître-esclave Mysql basée sur Docker, en espérant aider tout le monde.

Présentation de l'environnement

Serveur maître : JD Cloud CentOS

Serveur esclave : Vultr Cloud CentOS

Afin de faciliter les tests, Docker est utilisé pour exécuter Mysql et Docker est démarré. La commande est la suivante :

 docker run --name mysql-server-01 -p 3306:3306 -v "$PWD"/conf.d:/etc/mysql/conf.d -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw  -d mysql:latest
Copier après la connexion

Ce qui précède mappe le répertoire de configuration MySQL et le répertoire de données au répertoire de données. hôte.

Configurer Master

Pour plus de commodité, un répertoire spécial est créé pour faire fonctionner la base de données master La structure est la suivante

<🎜. >
mysql
└── server01
    ├── conf.d
    ├── data
    └── start.sh
Copier après la connexion
Créez my.cnf dans cond.d pour configurer le maître

[mysqld]log-bin=mysql-binserver-id=1innodb_flush_log_at_trx_commit=1sync_binlog=1
Copier après la connexion
Ensuite vous peut démarrer le conteneur.

Après le démarrage, entrez dans le conteneur pour faire fonctionner mysql

Le fichier de configuration my.cnf est le suivant (pour plus de simplicité, de nombreux paramètres sont omis ici et devraient ne pas être utilisé dans des environnements de production) :
# 进入容器
docker exec -it 容器ID bash

# 进入msyql客户端
mysql -u root -p

# 新建salve用户并配置权限,格式如下
mysql> CREATE USER &#39;repl&#39;@&#39;%.example.com&#39; IDENTIFIED BY &#39;password&#39;;
mysql> GRANT REPLICATION SLAVE ON *.* TO &#39;repl&#39;@&#39;%.example.com&#39;;

# 查看master状态,这里file和position后面配置salve会用到mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 |     1092 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)
Copier après la connexion

Ensuite, démarrez le conteneur et entrez dans le client mysql. Démarrer l'esclave
[mysqld]server-id=2
Copier après la connexion

   Vérifiez l'état de fonctionnement :
# 配置master到slave
mysql> CHANGE MASTER TO
    ->     MASTER_HOST=&#39;master_host_name&#39;,    ->     MASTER_USER=&#39;replication_user_name&#39;,    ->     MASTER_PASSWORD=&#39;replication_password&#39;,    ->     MASTER_LOG_FILE=&#39;recorded_log_file_name&#39;,    ->     MASTER_LOG_POS=recorded_log_position;
Copier après la connexion

 

 Slave_IO_Running et Slave_SQL_Running ci-dessus sont OUI, indiquant que le maître et l'esclave ont été configurés. Résumé
START SLAVE;
Copier après la connexion

Il existe trois architectures MySQL courantes

Architecture à instance unique
mysql> show slave status\G;*************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: xxx.com                  Master_User: slave1                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: mysql-bin.000001          Read_Master_Log_Pos: 1092               Relay_Log_File: ca210e4caaaa-relay-bin.000002                Relay_Log_Pos: 813        Relay_Master_Log_File: mysql-bin.000001             Slave_IO_Running: Yes            Slave_SQL_Running: Yes              Replicate_Do_DB:           Replicate_Ignore_DB:            Replicate_Do_Table:        Replicate_Ignore_Table:       Replicate_Wild_Do_Table:   Replicate_Wild_Ignore_Table:                    Last_Errno: 0                   Last_Error:                  Skip_Counter: 0          Exec_Master_Log_Pos: 1092              Relay_Log_Space: 1027              Until_Condition: None               Until_Log_File:                 Until_Log_Pos: 0           Master_SSL_Allowed: No           Master_SSL_CA_File:            Master_SSL_CA_Path:               Master_SSL_Cert:             Master_SSL_Cipher:                Master_SSL_Key:         Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: No                Last_IO_Errno: 0                Last_IO_Error:                Last_SQL_Errno: 0               Last_SQL_Error:   Replicate_Ignore_Server_Ids:              Master_Server_Id: 1                  Master_UUID: 5c2073ab-0ad6-11e8-a871-0242ac110005             Master_Info_File: /var/lib/mysql/master.info                    SQL_Delay: 0          SQL_Remaining_Delay: NULL      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates           Master_Retry_Count: 86400                  Master_Bind:       Last_IO_Error_Timestamp:      Last_SQL_Error_Timestamp:                Master_SSL_Crl:            Master_SSL_Crlpath:            Retrieved_Gtid_Set:             Executed_Gtid_Set:                 Auto_Position: 0         Replicate_Rewrite_DB:                  Channel_Name:            Master_TLS_Version: 1 row in set (0.00 sec)
Copier après la connexion
Réplication maître-esclave

Architecture haute disponibilité MHA

  • L'une des méthodes de réplication maître-esclave est basée sur la méthode de réplication de journaux binaires ci-dessus, et l'autre est basé sur la méthode de l'identifiant de transaction global (GTID).

    Recommandations associées :
  • Explication détaillée du processus de réplication maître-esclave MySQL_Explication détaillée de l'instance MySQL
  • À propos de MySQL5 7.18 Explication détaillée de la réplication maître-esclave pour créer une instance maître-esclave

La séparation lecture-écriture Mycat est implémentée sur la base de la réplication maître-esclave MySQL

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)

Comment changer la source d'image Docker en Chine Comment changer la source d'image Docker en Chine Apr 15, 2025 am 11:30 AM

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

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).

Comment créer un miroir dans Docker Comment créer un miroir dans Docker Apr 15, 2025 am 11:27 AM

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment lire la version docker Comment lire la version docker Apr 15, 2025 am 11:51 AM

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

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 exécuter la commande docker Comment exécuter la commande docker Apr 15, 2025 am 11:24 AM

Comment exécuter les commandes Docker? Installez Docker et démarrez le démon. Commandes docker communes: Docker Images: Afficher l'image docker PS: afficher le conteneur Docker Exécuter: Exécuter le conteneur Docker Stop: Stop Container Docker RM: Delete Container Interagissez avec Container à l'aide de Docker Commande: Docker Exec: Exécuter Commande Docker Docker: Attacher les journaux Docker Console: Afficher le journal Dock

Comment enregistrer l'image docker Comment enregistrer l'image docker Apr 15, 2025 am 11:54 AM

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

See all articles