Mettre en place une replication MySql

mercredi, 13 septembre 2006


(5 votes, Note: 3,80 sur 5) 1 Star2 Stars3 Stars4 Stars5 Stars
Loading...
Catégorie: Faq/Tutos
par Nicolas Martinez
Nombre de lectures: 155 views
Commentaires fermés sur Mettre en place une replication MySql

Le but de cet artcile est de présenter de facon sommaire, la réplication de bases MySql entre deux serveurs.
Pour cela, il vous faut donc deux serveurs MySql, la version >= 4 ira trés bien.
Pour faire simple, nous partirons de la config du master, que nous reprendrons pour le slave.
Créer tout d’abord un compte « replication » (sur le master donc) et donnez lui les droits suivant:

master:~# mysql -u root -p

GRANT FILE ON . TO replication@localhost IDENTIFIED BY ‘motdepasse’;

GRANT FILE ON . TO replication@’%’ IDENTIFIED BY ‘motdepasse’;

Il faut maintenant arreter le serveur:

master:~#/etc/init.d/mysql stop

et faites une sauvegarde de votre /var/lib/mysql (un tar par ex si vous n’avez pas de serveur de sauvegarde/restauration)

Passons au fichier de configuration:

master:~#nano /etc/mysql/my.cnf

Commenter la ligne skip-networking:

#skip-networking

Rajouter:

server-id = 1

log-bin = /var/log/mysql/mysql-bin.log

#################################

Sur le serveur secondaire, rajouter dans my.cnf:

server-id = 2

log-bin = /var/log/mysql/mysql-bin.log

master-host = FQDN du server master

master-user = replication

master-password = motdepasse

master-port = 3306

master-connect-retry = 10

Commenter la ligne skip-networking:

#skip-networking

Restaurer la sauvegarde de /var/lib/mysql du master sur le serveur secondaire, puis relancer les deux serveurs.

#################################### Verif

master:~# netstat -ano|grep 3306

tcp
0 0
0.0.0.0:3306
0.0.0.0:
LISTEN off (0.00/0/0)

tcp
0 0
ip_du_master:3306
ip_du_secondaire:40341 ESTABLISHED
keepalive (1445,05/0/0)

secondaire:~# netstat -ano|grep 3306

tcp
0 0
0.0.0.0:3306
0.0.0.0:
LISTEN off (0.00/0/0)

tcp
0 0
ip_du_secondaire:40341
ip_du_master:3306 ESTABLISHED
keepalive (1484,45/0/0)

  • Pour verifier que tout est ok sur le master depuis MySql:

master:~#
mysql -u root -p

mysql> show master status;

+—————+———-+————–+——————+

| File | Position | Binlog_do_db | Binlog_ignore_db |

+—————+———-+————–+——————+

| mysql-bin.277 | 1664562
|
|
|

+—————+———-+————–+——————+

1 row in set (0.03 sec)

  • Sur le serveur secondaire:

secondaire:~#
mysql> show slave status;

Vous aurez une sorte de tableau indiquant l’etat de la replication.
La replication fonctionne bien.
Le mieux est alors de tester la creation d’une base sur le primaire, et de voir si elle est bien sur le secondaire 😉

Les commentaires sont fermes.