I►Nous allons voir dans cet article comment configurer deux instances de MySql sur le même serveur et les lier en réplication Master vers Esclave …
Pré-requis : MySql et Apache doivent être correctement installés et bien configurés. Les paquets PHP5 et PHP-MySQL sont requis
Installation de PhpMyAdmin :
- Récupérer l’archive sur le site de www.phpmyadmin.net
- Dés-archivez là plusieurs fois (autant de fois qu’il y a d’instances de MySql installées)
exemple :
[root@/var/www] ls
total 16K
-rw-r–r– 1 root root 276 4 févr. 13:31 index.html
drwxr-xr-x 8 tux linux 4,0K 4 févr. 12:50 phpmyadmin
drwxr-xr-x 8 tux linux 4,0K 4 févr. 13:55 phpmyadmin1
drwxr-xr-x 8 tux linux 4,0K 4 févr. 14:17 phpmyadmin2 - Modifier les fichiers de conf. de phpmyadmin config.inc.php en ajoutant ces infos :
$cfg[‘PmaAbsoluteUri’] = ‘http://localhost/phpmyadmin1/’;
$cfg[‘Servers’][$i][‘port’] = ‘3307’;
$cfg[‘Servers’][$i][‘socket’] = ‘/tmp/mysql.sock1’;
$cfg[‘Servers’][$i][‘connect_type’] = ‘socket’;
$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;Les Sockets, ports et dataDir correpondent aux infos précisées dans /etc/mysql/multi_my.cnf.replicantLes tests se font avec le navigateur en localhost :http://localhost/phpmyadmin1 ou http://localhost/phpmyadmin2 (après avoir stoppé le serveur mysql principal)
Conf de /etc/mysql/multi_my.cnf.replicant
[root@/etc/mysql] cat multi_my.cnf.replicant
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root
password = debian
#————–Serveur Maître ———————
[mysqld1]
socket = /tmp/mysql.sock1
port = 3307
pid-file = /var/lib/mysql1/hostname.pid1
datadir = /var/lib/mysql1
language = /usr/share/mysql/french
user = mysql
#————replication maître—————————–
server-id=1
log-bin = /var/log/mysql/mysql_master_bin.log
binlog_do_db=centrale
# log-bin et binlog-do-db servent respectivement à indiquer qu’un fichier journal binaire des requêtes SQL
# doit être créé sur le serveur maître (il sera utilisé par l’esclave pour rejouer les requêtes)
# Et à indiquer que ce fichier journal doit être utilisé par les bases de données centrale etc …
auto_increment_increment = 10
auto_increment_offset = 1
#pour éviter les conflits de clé unique
#—————Logs——————————–
log_error = /var/log/mysql/master_error.log
expire_logs_days = 20
max_binlog_size = 200M
#————–Serveur Esclave———————-
[mysqld2]
socket = /tmp/mysql.sock2
port = 3308
pid-file = /var/lib/mysql2/hostname.pid2
datadir = /var/lib/mysql2
language = /usr/share/mysql/french
user = mysql
#————–réplication esclave——————
server-id=2
master-host = 127.0.0.1
master-port = 3307
master-user = replicant
master-password = replicator
report-host=localhost
master-connect-retry=60
#indique combien de tentatives successives de connexion pour la réplication seront effectuées
replicate-do-db=centrale
#nom de la base à répliquer
#—————logs—————————–
log_error = /var/log/mysql/slave_error.log
#—————Fichiers relay——————-
relay-log = /var/log/mysql/slave.relay_log
#relay-log-index = /var/log/mysql/slave.relay_log_index
expire_logs_days = 20
# Le serveur esclave, devra aller lire le fichier journal binaire du maître pour créé pour ces bases.
# Il les copiera automatiquement dans un fichier tampon, ou fichier «?relais?» (relay)
# en terminologie MySQL, et il en jouera les requêtes.
auto_increment_increment = 10
auto_increment_offset = 2
Démarrage des instances mySql
mysqld_multi –defaults-file=/etc/mysql/multi_my.cnf.replicant start 1,2
mysqld_multi –defaults-file=/etc/mysql/multi_my.cnf.replicant report
Visualisation dans PhpMyAdmin
Si la config est bonne, on obtient ceci …
Sur l’esclave :
sur le maître.
Pour charger la 1ère fois du maître vers l’esclave et synchroniser le tout, utilisez
Ensuite les MAJ se feront automatiquement dans le sens M–>E
————————————————————————————————————————
Méthode avec WINDOWS
————————————————————————————————————————
Voici la configuration de my.ini de la 1ère instance de MySQL en maître :
Les options master-host master-user master-password sont devenus obsolètes avec les versions de mysql5.5, il faut créer le user replicant sue le serveur maître et à la connection du maître/esclave , un fichier master.info sera créé…
Voici la conf de l’esclave :
NB : s’il y a des erreurs de I/O, supprimmer le auto.cnf qui contient l’UUID des serveurs et empechent de synchroniser les données.
Michel BOCCIOLESI