Réplication MySql avec PhpMyAdmin sur 2 serveurs distincts

I► : sur le serveur Maître, configurez la réplication comme suit :

  • Dans l’onglet réplication, choisissez l’option configurer le serveur maître.

Capture

 

Editer le fichier /etc/mysql/my.cnf

  • Redémarrez mysql : /etc/init.d/mysql restart
  • Puis faites exécuter dans phpMyAdmin
  • Ajouter un nouvel utilisateur pour la réplication et donner lui tous les privilèges nécessaires
    Capture

 

CREATE USER ‘replicant’@’localhost’ IDENTIFIED BY ‘***’;
GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO ‘replicant’@’localhost’ IDENTIFIED BY ‘***’;

II : sur le serveur esclave, configurez la réplication comme suit :

  • Dans l’onglet réplication, configurez :
  • Vous devrez ajouter le server-id proposé par phpMyAdmin dans /etc/mysql/my.cnf et redémarrez mysql (pensez à ajouter slave-skip-errors=1062,1053 !)
  • puis faire éxécuter dans phpMyAdmin
  • Faites reconfigurer le serveur maître en saisissant les informations du serveur maître  Capture0

Ceci revient à faire en ligne de commande : et qui éditera au final le fichier master.info qui se trouve sur le serveur esclave :

Capture

 

  • On obtient alors cet écran :
  • Capture

 

 

On pourra synchroniser les données afin de copier toute la base de données vers le serveur esclave et ensuite démarrer complètement le serveur esclave (ce qui correspond à démarrer d’abord le fil I/O qui lit les requêtes du maître et le splace dans le relay-lo et ensuite le fil mysql qui lit le relay-log et éxécute le sql)

START SLAVE, appelé sans option, démarre les deux threads esclaves.(processus léger au sein d’un même processus)
Le thread I/O lire les requêtes du maître et les stocke dans le log de relais.
Le thread SQL lire le log de relais, et exécute les requêtes.
START SLAVE SQL_THREAD;
START SLAVE IO_THREAD;

  • Conf. de my.cnf sur le slave :

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
language = /usr/share/mysql/french
key_buffer = 32M
query_cache_size = 32M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 2M
query_cache_size = 32M
log_slow_queries = /var/log/mysql/mysql-slow.log
max_binlog_size = 100M

#réplication
server-id=1360067571
slave-skip-errors=1062,1053
[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]

[isamchk]
key_buffer = 16M
!includedir /etc/mysql/conf.d/

  • conf. de my.cnf sur le maître :

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
language = /usr/share/mysql/french
key_buffer = 32M
query_cache_size = 32M
max_allowed_packet = 16M
thread_stack = 192K
myisam-recover = BACKUP
query_cache_limit = 2M
query_cache_size = 32M
log_slow_queries = /var/log/mysql/mysql-slow.log
max_binlog_size = 100M

#replication
server-id=8345038
log-bin=mysql-bin
log-error=mysql-bin.err
binlog_do_db=centrale

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]

[isamchk]
key_buffer = 16M

!includedir /etc/mysql/conf.d/