Version:

SER406 - Sauvegardes et Replication

Sauvegardes

mysqlhotcopy

mysqlhotcopy est un script perl qui ne fonctionne que sous Linux. Ce script permet de prendre une copie à chaud d'une ou plusieurs bases de données.

[root@centos7 tmp]# cd ~
[root@centos7 ~]# which mysqlhotcopy
/bin/mysqlhotcopy

Pour exécuter le script en sauvegardant une base vers le répertoire /tmp, saisissez la commande suivante:

[root@centos7 ~]# mysqlhotcopy -u root -p fenestros1 ligue1 /tmp
Flushed 2 tables with read lock (`ligue1`.`equipe`, `ligue1`.`rencontre`) in 0 seconds.
Locked 1 views (`ligue1`.`V_EQUIPE`) in 0 seconds.
Copying 12 files...
Copying indices for 0 files...
Unlocked tables.
mysqlhotcopy copied 3 tables (12 files) in 0 seconds (0 seconds overall).

Consultez le répertoire /tmp:

[root@centos7 ~]# ls -l /tmp | grep ligue
drwxr-x---. 2 mysql mysql 280 Nov 3 12:28 ligue1

En effet mysqlhotcopy a créé un répertoire au nom de la base de données. A l'intérieur de ce répertoire, vous constaterez la présence des fichiers de la base de données:

[root@centos7 ~]# ls -l /tmp/ligue1/
total 64
-rw-rw----. 1 mysql mysql 65 Oct 31 10:19 db.opt
-rw-rw----. 1 mysql mysql 8818 Oct 31 11:12 equipe.frm
-rw-rw----. 1 mysql mysql 296 Nov 3 11:47 equipe.MYD
-rw-rw----. 1 mysql mysql 2048 Nov 3 11:51 equipe.MYI
-rw-rw----. 1 mysql mysql 297 Oct 31 11:05 equipe.TRG
-rw-rw----. 1 mysql mysql 8800 Oct 31 10:20 rencontre.frm
-rw-rw----. 1 mysql mysql 120 Nov 3 11:47 rencontre.MYD
-rw-rw----. 1 mysql mysql 2048 Nov 3 11:51 rencontre.MYI
-rw-rw----. 1 mysql mysql 603 Oct 31 11:07 rencontre.TRG
-rw-rw----. 1 mysql mysql 38 Oct 31 11:05 TGR_BI_EQUIPE.TRN
-rw-rw----. 1 mysql mysql 41 Oct 31 11:07 TGR_BU_RENCONTRE.TRN
-rw-rw----. 1 mysql mysql 971 Oct 31 11:14 V_EQUIPE.frm

mysqldump

Le client mysql vous permet de traiter des commandes SQL se trouvant dans un fichier. Pour cela lancez mysql de la manière suivante :

# mysql [options] database < file.sql

Toutes les commandes SQL contenues dans file.sql seront alors appliquées à la base de données spécifiée. Le fichier ne doit pas nécessairement se terminer par .sql – ce qui compte, c'est le contenu. Il faut absolument que les commandes soient délimitées par des points-virgules. Si vous le souhaitez, vous pouvez configurer un autre séparateur de commandes à l'aide de la commande DELIMITER. Cela s'avère nécessaire lorsque les fichiers SQL contient des commandes CREATE FUNCTION, PROCEDURE ou TRIGGER, qui contiennent des points-virgules.

Sauvegarder avec mysqldump

Mysqldump crée une sauvegarde d'une base de données. Le fichier de sauvegarde résultant contient des commandes SQL permettant de créer des tables et d'ajouter des données. La syntaxe de mysqldump est la suivante :

# mysqldump [option] dbname > backupfile.sql

Important - Les routines ne sont pas sauvegardées par défaut lors de l'utilisation de la commande mysqldump. Pour les sauvegarder il convient de passer l'option –routines à mysqldump.

Restauration avec mysqldump

Dans la pratique, vous rencontrerez souvent les fichiers *.sql comportant une sauvegarde de bases de données créée avec mysqldump. Pour lire ces fichiers, vous devez normalement créer la nouvelle base de données avec mysqladmin. Les deux commandes suivantes illustrent la procédure :

# mysqladmin -u root -p create dbname [Entrée]
Password : ********** [Entrée]

# mysql -u root -p dbname < backupfile.sql [Entrée]
Password : ********** [Entrée]

Les sauvegardes de base de données créées avec une version récente de mysqldump comporte des commandes SQL pour activer le jeu de caractères utilisé dans le fichier de sauvegarde. Ne vous préoccupez donc pas du jeu de caractères. Cette information manque dans les sauvegardes créées avec d'anciennes versions de mysqldump ou d'autres programmes comme phpMyadmin.

Important - Notez que les sauvegardes réalisées avec les versions récentes de phpMyadmin utilisent par défaut le jeu de caractères UTF-8.

Pour qu'une ancienne sauvegarde puisse être correctement lue, vous devez utiliser l'option –default-character-set= …. Si vous ne connaissez pas le jeu de caractères utilisés, saisissez latin1. Ce jeu de caractères était employé par défaut par les versions de MySQL 4.0 et antérieures.

Par exemple:

# mysql –u –root –p –default_character_set=latin1 dbname < backup.sql [Entrée]

Mariabackup

[root@centos7 ~]# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
[info] Checking for script prerequisites.
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo
[info] Adding trusted package signing keys...
/etc/pki/rpm-gpg ~
~
[info] Successfully added trusted package signing keys
[info] Cleaning package cache...
Loaded plugins: fastestmirror, langpacks
Cleaning repos: base extras mariadb-main mariadb-maxscale mariadb-tools updates
Cleaning up list of fastest mirrors

[root@centos7 ~]# yum install MariaDB-backup

[root@centos7 ~]# wget http://downloads.mysql.com/docs/sakila-db.tar.gz

[root@centos7 ~]# tar xvf sakila-db.tar.gz

[root@centos7 ~]# mysql -uroot -p < sakila-db/sakila-schema.sql
Enter password:
[root@centos7 ~]# mysql -uroot -p < sakila-db/sakila-data.sql
Enter password:

[root@centos7 ~]# mkdir /var/mariadb

[root@centos7 ~]# mariabackup --backup --target-dir=/var/mariadb/backup/ --user=root --password=fenestros
.....
[00] 2021-11-03 16:28:35 >> log scanned up to (5455954)
[00] 2021-11-03 16:28:35 Executing BACKUP STAGE END
[00] 2021-11-03 16:28:35 All tables unlocked
[00] 2021-11-03 16:28:35 Copying ib_buffer_pool to /var/mariadb/backup/ib_buffer_pool
[00] 2021-11-03 16:28:35 ...done
[00] 2021-11-03 16:28:35 Backup created in directory '/var/mariadb/backup/'
[00] 2021-11-03 16:28:35 Writing backup-my.cnf
[00] 2021-11-03 16:28:35 ...done
[00] 2021-11-03 16:28:35 Writing xtrabackup_info
[00] 2021-11-03 16:28:35 ...done
[00] 2021-11-03 16:28:35 Redo log (from LSN 42161 to 5455954) was copied.
[00] 2021-11-03 16:28:35 completed OK!

[root@centos7 ~]# ls -l /var/mariadb/backup/
total 18040
-rw-r-----. 1 root root 425984 Nov 3 16:28 aria_log.00000001
-rw-r-----. 1 root root 52 Nov 3 16:28 aria_log_control
-rw-r-----. 1 root root 297 Nov 3 16:28 backup-my.cnf
-rw-r-----. 1 root root 942 Nov 3 16:28 ib_buffer_pool
-rw-r-----. 1 root root 12582912 Nov 3 16:28 ibdata1
-rw-r-----. 1 root root 5416448 Nov 3 16:28 ib_logfile0
drwx------. 2 root root 4096 Nov 3 16:28 mysql
drwx------. 2 root root 19 Nov 3 16:28 performance_schema
drwx------. 2 root root 4096 Nov 3 16:28 sakila
drwx------. 2 root root 8192 Nov 3 16:28 sys
drwx------. 2 root root 19 Nov 3 16:28 test
-rw-r-----. 1 root root 75 Nov 3 16:28 xtrabackup_checkpoints
-rw-r-----. 1 root root 448 Nov 3 16:28 xtrabackup_info

[root@centos7 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 10.6.4-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE world;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> exit
Bye
[root@centos7 ~]# wget http://downloads.mysql.com/docs/world-db.tar.gz
[root@centos7 ~]# gunzip world-db.tar.gz
[root@centos7 ~]# ls -l
total 44500
-rw-------. 1 root root 1200 Apr 30 2016 anaconda-ks.cfg
-rw-------. 1 root root 1251 Apr 30 2016 initial-setup-ks.cfg
-rwxrwxrwx. 1 root root 19081806 Jan 24 2016 Remote Access-linux64-offline
-rw-r--r--. 1 root root 19087360 Jan 24 2016 Remote Access-linux64-offline.tar
-rwxrwxrwx. 1 root root 3121044 Jan 24 2016 Remote Access-linux64-online
-rw-r--r--. 1 root root 3123200 Jan 24 2016 Remote Access-linux64-online.tar
drwxr-xr-x. 2 500 500 69 Nov 1 00:05 sakila-db
-rw-r--r--. 1 root root 732133 Nov 1 00:05 sakila-db.tar.gz
-rw-r--r--. 1 root root 409600 Nov 1 00:05 world-db.tar
[root@centos7 ~]# tar xvf world-db.tar
world-db/
world-db/world.sql
[root@centos7 ~]# mysql -uroot -p world < world-db/world.sql
Enter password:

[root@centos7 ~]# mariabackup --backup --target-dir=/var/mariadb/inc1/ --incremental-basedir=/var/mariadb/backup/ --user=root --password=fenestros

[root@centos7 ~]# cat /var/mariadb/backup/xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 42161
last_lsn = 5455954

Réplication

Présentation

Le réplication a lieu en générale entre une machine maître et une machine esclave. Dans notre cas, nous allons créer ultérieurement un clone de la VM utilisée jusqu'à maintenant pour servir de machine esclave.

Quand la réplication est mise en place, deux threads sont démarrés sur l'esclave :

IO_THREAD - copie les informations des journaux binaires du maître dans son relay log,

SQL-THREAD - exécute les modifications sur la ou les bases de données de l'esclave.

Un troisième thread est ouvert sur le serveur maître par l'IO_THREAD pour le transfert des journaux.

Un esclave ne peut avoir qu'un seul maître mais un maître peut avoir plusieurs esclaves.

Dans une réplication Maître - esclave, ceci permet d'être évolutif en lecture mais pas en écriture. Trop de requêtes en écriture vont “inondées” le ou les esclaves.

Dans une réplication Maître-Maître il est possible d'avoir deux modes de fonctionnement :

actif-passif,

un des maîtres est utilisé pour les écritures/lectures tandis que l'autre est un backup en cas de défaillance du premier,

actif-actif,

les deux maîtres sont utilisés pour les écritures/lectures.

Il existe deux types de réplications :

SBR - Statement Based Replication,

les requêtes SQL sont ré-exécutées sur l'esclave. Cette méthode crée des problèmes quand la requête est dynamique ( par exemple dans le cas d'une fonction ),

RBR - Row Based Replication,

les modifications et les valeurs des enregistrements sont répliqués. Cette méthode est plus lente à cause de la quantité de données à répliquer.

A partir de la version 5.6 de MySQL, il est possible de choisir un mode mixed. Le serveur va choisir la méthode approprié pour chaque cas.

Il est possible de fixer la valeur de plusieurs variable pour choisir quelles bases de données vont être répliquées :

binlog-do-db et binlog-ignore-db sur le maître,

replicate-do-db et replicate-ignore-db sur l'esclave.

Dans le premier cas cela nécessite le re-démarrage du serveur maître. Il est donc préférable d'utiliser les variables sur l'esclave.

LAB #1 - Mise en Place de la Réplication Maître/Esclave

Création du compte de réplication

Saisissez la commande suivante pour créer l'utilisateur replicant et y associer un mot de passe et les permissions adéquates :

GRANT REPLICATION SLAVE, REPLICATION CLIENT
ON *.*
TO 'replicant'@'%'
IDENTIFIED BY 'password';

Vous obtiendrez un résultat similaire à celui-ci :

[root@centos7 ~]# mysql -u root -p
Enter password: fenestros1
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> GRANT REPLICATION SLAVE, REPLICATION CLIENT
-> ON *.*
-> TO 'replicant'@'%'
-> IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>

Important - Dans le cas de deux machines physiques, cette commande doit être saisie sur le maître et l'esclave. Le compte doit avoir les droits de REPLICATION SLAVE (avant MySQL 4.0.2, il devait avoir les droits de FILE). Le mot de passe password est à modifier mais doit être identique sur le serveur maître et le serveur esclave.

Vérifiez ensuite la création de votre utilisateur replicant :

MariaDB [(none)]> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> SELECT user, password FROM user;
+-----------+-------------------------------------------+
| user | password |
+-----------+-------------------------------------------+
| root | *F3E048E28ED63F281CF8A403F96F5D283C8700E6 |
| root | |
| root | |
| root | |
| user2 | *9296FFD029BFAE29EDDC1E57E53F4A8E555895B8 |
| user1 | *34D3B87A652E7F0D1D371C3DBF28E291705468C4 |
| fenestros | *00269BA49BEC800F9CCF34C20C1FD83E0236B89A |
| replicant | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-----------+-------------------------------------------+
8 rows in set (0.01 sec)
MariaDB [mysql]>

Configurer le maître

Ajoutez ensuite deux lignes dans la section mysqld du fichier /etc/my.cnf du maître:

[root@centos7 ~]# vi /etc/my.cnf
[root@centos7 ~]# cat /etc/my.cnf
[mysqld]
slow_query_log
slow_query_log_file = /var/log/mysql-slow.log
long-query-time = 2
log_output = TABLE
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#AJOUTER LA LIGNE SUIVANTE
server-id = 1
#AJOUTER LA LIGNE SUIVANTE
log-bin = mysql-bin
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
ssl-ca=/etc/pki/mysql/ca-cert.pem
ssl-cert=/etc/pki/mysql/server-cert.pem
ssl-key=/etc/pki/mysql/server-key.pem
[client]
ssl-ca=/etc/pki/mysql/ca-cert.pem
ssl-cert=/etc/pki/mysql/client-cert.pem
ssl-key=/etc/pki/mysql/client-key.pem
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

Redémarrez le service mariadb :

[root@centos7 ~]# systemctl restart mariadb

Configurer l'esclave

Connectez-vous à la VM esclave au 10.0.2.71. Vérifiez que vous voyez le maître sur le réseau :

[root@centos7 ~]# ping -c3 10.0.2.51
PING 10.0.2.51 (10.0.2.51) 56(84) bytes of data.
64 bytes from 10.0.2.51: icmp_seq=1 ttl=64 time=2.40 ms
64 bytes from 10.0.2.51: icmp_seq=2 ttl=64 time=1.52 ms
64 bytes from 10.0.2.51: icmp_seq=3 ttl=64 time=1.49 ms
--- 10.0.2.51 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.493/1.809/2.407/0.425 ms

Installez MariaDB puis :

configurez le SSL

configurez les logs

La base de données du Maître doit être transférée sur l'Esclave. Afin de permettre une sauvegarde complète des bases de données sur le maître, vous devez vous assurer que seulement root y a accès. Ceci est possible grâce à la directive max_connections.

Contrôlez d'abord la valeur actuelle de max_connections:

[root@centos7 ~]# mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [mysql]> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row in set (0.00 sec)
MariaDB [mysql]>

Notez la valeur et ensuite définissez-la à 1 pour n'avoir que la connexion de root :

MariaDB [mysql]> SET GLOBAL max_connections = 1;
Query OK, 0 rows affected
MariaDB [mysql]> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1 |
+-----------------+-------+
1 row in set (0.00 sec)
MariaDB [mysql]>

Pour sauvegarder la totalité des bases de données sur le maître, il convient d'utiliser la commande suivante :

# mysqldump --user=root --password=fenestros1 --extended-insert --all-databases --master-data --event > /tmp/backup.sql [Entrée]

Important - Notez que –master-data permet à mysqldump de récupérer les données du maître concernant la réplication.

Ensuite sur l'esclave, il convient d'injecter le fichier backup.sql en provenance du maître:

# mysql --user=root --password=fenestros < /tmp/backup.sql [Entrée]

Dernièrement, re-définissez à 151 connexions la valeur de max-connexions sur le maître et ensuite contrôlez la valeur de max_connections:

MariaDB [mysql]> SET GLOBAL max_connections = 151;
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row in set (0.37 sec)
MariaDB [mysql]>

Ajoutez ensuite les lignes dans la section mysqld du fichier /etc/my.cnf de l'esclave:

server-id = 2
log-bin = /var/log/mysqld/bin.log
log-bin-index = /var/log/mysqld/log-bin.index
log-error = /var/log/mysqld/error.log
relay-log = /var/log/mysqld/relay.log
relay-log-info-file = /var/log/mysqld/relay-log.info
relay-log-index = /var/log/mysqld/relay-log.index

Vous obtiendrez :

[root@centos7 ~]# cat /etc/my.cnf
[mysqld]
slow_query_log
slow_query_log_file = /var/log/mysql-slow.log
long-query-time = 2
log_output = TABLE
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id = 2
log-bin = /var/log/mysqld/bin.log
log-bin-index = /var/log/mysqld/log-bin.index
log-error = /var/log/mysqld/error.log
relay-log = /var/log/mysqld/relay.log
relay-log-info-file = /var/log/mysqld/relay-log.info
relay-log-index = /var/log/mysqld/relay-log.index
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
ssl-ca=/etc/pki/mysql/ca-cert.pem
ssl-cert=/etc/pki/mysql/server-cert.pem
ssl-key=/etc/pki/mysql/server-key.pem
# ssl-cipher=CAMELLIA128-SHA
[client]
ssl-ca=/etc/pki/mysql/ca-cert.pem
ssl-cert=/etc/pki/mysql/client-cert.pem
ssl-key=/etc/pki/mysql/client-key.pem
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

Créez maintenant le répertoire /var/log/mysqld et attribuez-le à l'utilisateur mysql du groupe mysql :

[root@centos7 ~]# mkdir /var/log/mysqld
[root@centos7 ~]# chown mysql:mysql /var/log/mysqld

Définir les paramètres de l'esclave :

[root@centos7 ~]# mysql -u root -p mysql
Enter password: fenestros1
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [mysql]> CHANGE MASTER TO MASTER_HOST ='10.0.2.51';
Query OK, 0 rows affected (0.39 sec)
MariaDB [mysql]> CHANGE MASTER TO MASTER_PORT =3306;
Query OK, 0 rows affected (0.02 sec)
MariaDB [mysql]> CHANGE MASTER TO MASTER_USER ='replicant';
Query OK, 0 rows affected (0.07 sec)
MariaDB [mysql]> CHANGE MASTER TO MASTER_PASSWORD ='password';
Query OK, 0 rows affected (0.05 sec)
MariaDB [mysql]> exit
Bye

Les valeurs de ces variables sont normalement stockées dans /var/lib/mysql/master.info :

[root@centos7 ~]# cat /var/lib/mysql/master.info
18
4
10.0.2.51
replicant
password
3306
60
0
0
1800.000
0
[root@centos7 ~]#

A faire - Pour plus d'informations concernant CHANGE MASTER TO, consultez ce lien.

Redémarrez le service mariadb :

[root@centos7 ~]# systemctl restart mariadb

Ensuite démarrez l'esclave:

[root@centos7 ~]# mysql -u root -p mysql
Enter password: fenestros1
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [mysql]> START SLAVE;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MariaDB [mysql]> exit
Bye

Contrôler la réplication

Arrêtez le pare-feu iptables sur l'esclave :

[root@centos7 ~]# systemctl stop firewalld

Arrêtez le pare-feu iptables sur le maître :

[root@centos7 ~]# systemctl stop firewalld

Pour visualiser le statut de la réplication sur l'esclave, utilisez la commande suivante:

[root@centos7 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW SLAVE STATUS;
+----------------------+--------------+-------------+-------------+---------------+-----------------+---------------------+----------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------+----------------+-----------------------------+------------------+
| Slave_IO_State | Master_Host | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos | Relay_Log_File | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master | Master_SSL_Verify_Server_Cert | Last_IO_Errno | Last_IO_Error | Last_SQL_Errno | Last_SQL_Error | Replicate_Ignore_Server_Ids | Master_Server_Id |
+----------------------+--------------+-------------+-------------+---------------+-----------------+---------------------+----------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------+----------------+-----------------------------+------------------+
| Connecting to master | 10.0.2.51 | replicant | 3306 | 60 | | 4 | relay.000001 | 4 | | Connecting | Yes | | | | | | | 0 | | 0 | 0 | 245 | None | | 0 | No | | | | | | NULL | No | 2003 | error connecting to master 'replicant@10.0.2.51:3306' - retry-time: 60 retries: 86400 message: Can't connect to MySQL server on '10.0.2.51' (113) | 0 | | | 0 |
+----------------------+--------------+-------------+-------------+---------------+-----------------+---------------------+----------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+----------------+----------------+-----------------------------+------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>

Pour visualiser le statut de la réplication sur le maître, utilisez la commande suivante:

[root@centos7 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 245 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>

Modifiez ensuite un enregistrement dans la base ligue1 du Maître :

MariaDB [(none)]> use ligue1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [ligue1]> show tables;
+------------------+
| Tables_in_ligue1 |
+------------------+
| V_EQUIPE |
| equipe |
| rencontre |
+------------------+
3 rows in set (0.00 sec)
MariaDB [ligue1]> select * from equipe;
+-----------+------------------------+------------------+------------+--------+------+------------------+----------------+
| id_equipe | nom | stade | ville | points | buts | entraineur | tel_entraineur |
+-----------+------------------------+------------------+------------+--------+------+------------------+----------------+
| 1 | FC Mandriva | Parc des Princes | Paris | 3 | 3 | Ricardo GOMES | 06-56-56-56-56 |
| 2 | Debian AC | Yankee Stadium | New York | 3 | 3 | Gérard Houllier | 06-57-57-57-57 |
| 3 | Vista FC | Qwest Field | Redmond | 0 | 0 | inconnu | inconnu |
| 4 | Racing Club Strasbourg | La Meinau | STRASBOURG | 0 | 0 | inconnu | inconnu |
+-----------+------------------------+------------------+------------+--------+------+------------------+----------------+
4 rows in set (0.37 sec)
MariaDB [ligue1]> SELECT * FROM equipe WHERE id_equipe=1;
+-----------+-------------+------------------+-------+--------+------+---------------+----------------+
| id_equipe | nom | stade | ville | points | buts | entraineur | tel_entraineur |
+-----------+-------------+------------------+-------+--------+------+---------------+----------------+
| 1 | FC Mandriva | Parc des Princes | Paris | 3 | 3 | Ricardo GOMES | 06-56-56-56-56 |
+-----------+-------------+------------------+-------+--------+------+---------------+----------------+
1 row in set (0.00 sec)
MariaDB [ligue1]> UPDATE equipe SET stade = 'La réplication fonctionne!!' WHERE id_equipe=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [ligue1]> SELECT * FROM equipe WHERE id_equipe=1;
+-----------+-------------+------------------------------+-------+--------+------+---------------+----------------+
| id_equipe | nom | stade | ville | points | buts | entraineur | tel_entraineur |
+-----------+-------------+------------------------------+-------+--------+------+---------------+----------------+
| 1 | FC Mandriva | La réplication fonctionne!! | Paris | 3 | 3 | Ricardo GOMES | 06-56-56-56-56 |
+-----------+-------------+------------------------------+-------+--------+------+---------------+----------------+
1 row in set (0.00 sec)
MariaDB [ligue1]>

Contrôlez la réplication sur la VM esclave :

MariaDB [(none)]> USE ligue1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [ligue1]> SELECT * FROM equipe WHERE id_equipe=1;
+-----------+-------------+------------------------------+-------+--------+------+---------------+----------------+
| id_equipe | nom | stade | ville | points | buts | entraineur | tel_entraineur |
+-----------+-------------+------------------------------+-------+--------+------+---------------+----------------+
| 1 | FC Mandriva | La réplication fonctionne!! | Paris | 3 | 3 | Ricardo GOMES | 06-56-56-56-56 |
+-----------+-------------+------------------------------+-------+--------+------+---------------+----------------+
1 row in set (0.00 sec)
MariaDB [ligue1]>

<html> <center> Copyright © 2021 Hugh Norris. </center> </html>