MySQL Réplication Master-Slave

On 24 août 2010, in MySQL, by benjamin

Pré-requis :

  • 1 base de données
  • Avoir 2 serveurs avec MySQL installé. (cf debian : apt-get install mysql-server-5.0)

Pour quelles raisons configurer MySQL avec 1 serveur Maître et 1 ou plusieurs esclaves :

  • Si votre serveur MySQL est sous une charge importante, avoir des esclaves sur lesquels répartir la charge est une excellente chose dans la mesure où de 80% à 95% des queries sont des SELECT (lecture)
  • Avoir une base de données de secours pour pouvoir relancer un système rapidement en cas de crash du serveur maître.

Ce qui nous conduit maintenant dans le vif du sujet : 2 grandes étapes :

  1. La configuration du Maître
  2. La configuration de l’esclave.

La configuration du Maître

Depuis un terminal editer le fichier de configuration du serveur MySQL :

vi /etc/mysql/my.cnf

#bind-address            = 127.0.0.1
#bind-address            = 192.168.0.1
#le slave doit pouvoir se connecter à cette IP.
server-id               = 1
log-bin                 = /var/log/mysql/mysql-bin.log
expire-logs-days        = 20
max_binlog_size         = 104857600
binlog-do-db            = maBaseDeDonnees
binlog-ignore-db        = mysql,test

redemarrer MySQL :

/etc/init.d/mysql restart

Connexion à la bdd

mysql -u root -p

Création de l’utilisateur qui va nous servir à la replication

GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'IPMachineSlave'
IDENTIFIED BY 'motdepasse';

FLUSH PRIVILEGES ;

Création de la base à répliquer.

create database maBaseDeDonnees;
USE maBaseDeDonnees;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
+------------------+----------+---------------------------+--
| File             | Position | Binlog_Do_DB              | B
+------------------+----------+---------------------------+--
| mysql-bin.000007 |      197 | maBaseDeDonnees,maBaseDeDonnees
+------------------+----------+---------------------------+--

La position est importante, elle va nous servir pour la configuration du slave

La configuration de l’esclave

Connexion à la bdd

mysql -u root -p

Edition du fichier my.cnf sur le serveur slave :

server-id=2
master-host=192.168.0.1
master-user=slaveuser
master-password=motdepasse
master-connect-retry=60
replicate-do-db=maBaseDeDonnees

Redémarrage du serveur slave :

/etc/init.d/mysql restart

Connexion à mysql :

mysql - u root -p
SLAVE STOP ;
CHANGE MASTER TO MASTER_HOST='192.168.0.1', MASTER_USER='slaveuser',
MASTER_PASSWORD='motdepasse',
MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=197;
START SLAVE;

Voila vous pouvez remplir votre BDD comme bon vous semble (création de table, insertion etc…) Tout ce qui sera fait sur le master sera aussi fait sur le slave.

Si vous avez des questions n’hésitez pas.

6 Responses to “MySQL Réplication Master-Slave”

  1. Chun li dit :

    I follow your web site for quite a lengthy time and really tell that your articles usually prove to be of a high value and quality for readers.

  2. … trackback …..

    R¨¦elles succ¨¨s vient petit portions jour apr¨¨s jour. Vous devez faire plaisir de la vie chaque jour peu tr¨¦sor doudoune moncler http://www.yousaytoo.com/doudounegeor/blogs/doudounegeorge/ doudoune moncler pas cher et quitter m’un Remarque pour me …

  3. … trackback …..

    Fascinant doudoune moncler http://shinjuku.areablog.jp/doudounejames doudoune monclerIl est crucial chose dans la mesure du succ¨¨s…

  4. … trackback …..

    Cela peut ¨ºtre un tr¨¨s faisant publier , j’¨¦tais recherchant cette info. Simplement si vous comprenez je situ¨¦ votre blog site lorsque je a v¨¦rification des blogs comme le mien, donc veuillez jetez un ?il mon site quelque temps doudoune moncler h…

  5. … ……..

    grand Doudoune Moncler, http://tesechen.blog.com/ Achat Doudoune monlcer votre blog modèle est véritablement bon , Je suis recherche pour obtenir un nouveau modèle pour mon moncler doudoune propre personnel blog , j’aime v?tre, maintenant Je vais alle…

Leave a Reply

You must be logged in to post a comment.