Voici un tuto sur la réplication mysql avec PHPmyadmin
- Langue : Français
- Source : https://www.prestaopen.com/mysql/replication-maitre-maitre-avec-phpmyadmin.html
- Etat : En cours
1 – Préambule
Lors d’une réunion, on m’a demandé comment mettre en place sur Mysql une réplication Maître/Maître entre 2 serveurs.
Je vous livre ici la version phpmyadmin.
Pour la version Ligne de commande, c’est ici : Réplication Master/Master Ligne de commande
J’ai besoin pour cela de 2 serveurs Mysql hébergés sur des machines virtuelles Centos 6.4.
Soit l’installation se fait en double en suivant cet article : Virtualisation 05 – Installation Centos 6.4
Soit vous avez comme moi une VM de référence et vous la clonée suivant cet article : Clonage de VM Centos
Sur les 2 VMs vous installez phpmyadmin comme ici : Installation phpmyadmin sur Centos
2 – Etat des lieux
2.1 – Serveur 1
- nom = Centos_Mysql_Master1Slave2
- ip = 192.168.0.151
2.2 – Serveur 2
- nom = Centos_Mysql_Master2Slave1
- ip = 192.168.0.152
3 – Création réplication Master1-Slave1
3.1 – Travail sur le Maître1
Sur phpmyadmin, créer une base nommée testreplication.

Création base testreplication
Cliquer sur Créer.
Créer un table dans cette base comme ceci :

Création table contacts
Cliquer sur Exécuter.

Champs de la table contacts
Cliquer sur Sauvegarder.
Aller sur l’onglet Réplication.

Onglet Réplication
Cliquer sur configurer de la partie Réplication maître.

Configuration du maître
Apporter les modifications au fichier /etc.cnf :
Le fichier /etc/my.cnf contient :?
1234567891011121314151617181920212223242526272829303132 | [mysqld] datadir= /var/lib/mysql socket= /var/lib/mysql/mysql .sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used (fedora >= 15). # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd user=mysql # Semisynchronous Replication # http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html # uncomment next line on MASTER ;plugin-load=rpl_semi_sync_master=semisync_master.so # uncomment next line on SLAVE ;plugin-load=rpl_semi_sync_slave=semisync_slave.so # Others options for Semisynchronous Replication ;rpl_semi_sync_master_enabled=1 ;rpl_semi_sync_master_timeout=10 ;rpl_semi_sync_slave_enabled=1 # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html ;performance_schema [mysqld_safe] log-error= /var/log/mysqld .log pid- file = /var/run/mysqld/mysqld .pid |
Nous allons rajouté ces lignes :?
1234 | server- id =876565 log_bin=mysql-bin log_error=mysql-bin.err binlog_do_db=testreplication |
Pour obtenir au final?
123456789101112131415161718192021222324252627282930313233343536 | [mysqld] datadir= /var/lib/mysql socket= /var/lib/mysql/mysql .sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used (fedora >= 15). # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd user=mysql # Semisynchronous Replication # http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html # uncomment next line on MASTER ;plugin-load=rpl_semi_sync_master=semisync_master.so # uncomment next line on SLAVE ;plugin-load=rpl_semi_sync_slave=semisync_slave.so # Others options for Semisynchronous Replication ;rpl_semi_sync_master_enabled=1 ;rpl_semi_sync_master_timeout=10 ;rpl_semi_sync_slave_enabled=1 # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html ;performance_schema server- id =876565 log_bin=mysql-bin log_error=mysql-bin.err binlog_do_db=testreplication [mysqld_safe] log-error= /var/log/mysqld .log pid- file = /var/run/mysqld/mysqld .pid |
Relancer le serveur mysql par la commande : service mysqld restart.
Revenir sur phpmyadmin et cliquer sur Exécuter.

Onglet Réplication
Déployer les informations :

Informations du maître
Cliquer sur Ajouter un utilisateur pour la réplication vers l’esclave.

Création de l’utilisateur
Saisir les informations et cliquer sur Exécuter.

Message de retour
L’utilisateur est bien créé.
Nous allons maintenant exporter la base. Aller sur l’onglet Exporter.

Exportation de la base
Cliquer sur Exécuter. Sauvegarder la base sur votre disque local.
3.2 – Travail sur l’esclave (Slave1)
Nous allons d’abord importer la sauvegarde du serveur maître.
Aller sur l’onglet Importer.

Importation sur l’esclave
Choisir le fichier sauvegardé au point précédent et cliquer sur Exécuter.

Nouvelle base sur l’esclave
La base testreplication est bien crée sur le serveur esclave.
Aller dans l’onglet Réplication.

Onglet réplication
Cliquer sur configurer dans la partie Réplication esclave.

Réplication esclave
Modifier le fichier /etc/my.cnf.
Le fichier /etc/my.cnf contient :?
1234567891011121314151617181920212223242526272829303132 | [mysqld] datadir= /var/lib/mysql socket= /var/lib/mysql/mysql .sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used (fedora >= 15). # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd user=mysql # Semisynchronous Replication # http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html # uncomment next line on MASTER ;plugin-load=rpl_semi_sync_master=semisync_master.so # uncomment next line on SLAVE ;plugin-load=rpl_semi_sync_slave=semisync_slave.so # Others options for Semisynchronous Replication ;rpl_semi_sync_master_enabled=1 ;rpl_semi_sync_master_timeout=10 ;rpl_semi_sync_slave_enabled=1 # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html ;performance_schema [mysqld_safe] log-error= /var/log/mysqld .log pid- file = /var/run/mysqld/mysqld .pid |
nous rajoutons la ligne :
server-id=1379929819
Pour obtenir ceci :?
123456789101112131415161718192021222324252627282930313233 | [mysqld] datadir= /var/lib/mysql socket= /var/lib/mysql/mysql .sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used (fedora >= 15). # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd user=mysql # Semisynchronous Replication # http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html # uncomment next line on MASTER ;plugin-load=rpl_semi_sync_master=semisync_master.so # uncomment next line on SLAVE ;plugin-load=rpl_semi_sync_slave=semisync_slave.so # Others options for Semisynchronous Replication ;rpl_semi_sync_master_enabled=1 ;rpl_semi_sync_master_timeout=10 ;rpl_semi_sync_slave_enabled=1 # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html ;performance_schema server- id =1379922579 [mysqld_safe] log-error= /var/log/mysqld .log pid- file = /var/run/mysqld/mysqld .pid |
Relancer le serveur mysql par la commande : service mysqld restart.
Revenir sur phpmyadmin et cliquer sur Exécuter.

Configuration terminée
Rafraîchir la page.

Messages pour la réplication esclave
Cliquer sur Contrôler le serveur esclave.

Contrôle du serveur esclave
Cliquer sur Démarrer complètement.
Rafraîchir la page.

Plus d’erreurs
La réplication est opérationnelle.
Un enregistrement créé sur la serveur maître est répliquer sur le serveur esclave.

Création enregistrement
Cliquer sur Exécuter.

Enregistrement sur le serveur maître
Il est répliqué sur le serveur esclave.

Enregistrement sur le serveur esclave
Une suppression sur le serveur maître est répercutée sur le serveur esclave.
Une modification sur le serveur maître est répercutée sur le serveur esclave.
Une création sur le serveur maître est répercutée sur les serveur esclave.
Dans l’autre sens cela ne fonctionne pas. Nous allons configurer la réplication retour.
4 – Création réplication Master2-Slave2
4.1 – Travail sur le Maître2
Aller sur l’onglet Réplication du serveur maître2.

Réplication Maître2
Cliquer sur configurer de la partie Réplication maître.

Configuration du maître 2
Choisir vos options, modifier le fichier /etc/my.cnf avec les indications de la page.
Il n’est pas nécessaire de renseigner le server-id.
Le fichier /etc/my.cnf devient :?
1234567891011121314151617181920212223242526272829303132333435 | [mysqld] datadir= /var/lib/mysql socket= /var/lib/mysql/mysql .sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used (fedora >= 15). # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd user=mysql # Semisynchronous Replication # http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html # uncomment next line on MASTER ;plugin-load=rpl_semi_sync_master=semisync_master.so # uncomment next line on SLAVE ;plugin-load=rpl_semi_sync_slave=semisync_slave.so # Others options for Semisynchronous Replication ;rpl_semi_sync_master_enabled=1 ;rpl_semi_sync_master_timeout=10 ;rpl_semi_sync_slave_enabled=1 # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html ;performance_schema server- id =1379929819 log_bin=mysql-bin log_error=mysql-bin.err binlog_do_db=testreplication [mysqld_safe] log-error= /var/log/mysqld .log pid- file = /var/run/mysqld/mysqld .pid |
Relancer le serveur mysql par la commande : service mysqld restart.
Revenir sur phpmyadmin et cliquer sur Exécuter.
Regarder les informations de ce serveur maître 2.

Informations du serveur maître 2
Cliquer sur Ajouter un utilisateur pour la réplication vers l’esclave.

Nouvel utilisateur
Renseigner les informations et cliquer sur Exécuter.

Utilisateur crée
4.2 – Travail sur l’esclave (Slave2)
Aller sur l’onglet Réplication.

Onglet réplication
Cliquer sur configurer de la partie Réplication esclave.

Configuration du serveur esclave 2
Cliquer sur Exécuter.

Messages serveur esclave 2
Cliquer sur Démarrer complètement.
Rafraîchir la page.
5 – Conclusion
Vous avez maintenant un réplication bi-directionnelle maître à maître fonctionnelle.
Il est possible d’effectuer toutes ces manipulations en ligne de commande.
Ce sera l’objet de mon prochain article.
Aucun commentaire jusqu'à présent.