Réplication MySql avec PhpMyAdmin sur 2 serveurs distincts
Source: Tutoriels Web Linux MySql
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.
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
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 à ajouterslave-skip-errors=1062,1053
!) - puis faire éxécuter dans phpMyAdmin
- Faites reconfigurer le serveur maître en saisissant les informations du serveur maître
Ceci revient à faire en ligne de commande : et qui éditera au final le fichier master.info
qui se trouve sur le serveur esclave :
- On obtient alors cet écran :
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/