Mysql replication
De SME Server Wiki
Révision de 12 mai 2008 à 02:38 par WikiSysop (discussion | contributions)
voici le how to pour réaliser une replication d'une base Mysql d'un SME sur un autre.
Nous allons considerer : SME7-1 : le SME maitre SME7-2 : le SME esclave
Sommaire
Configuration du SME7-1 maitre
mkdir -p /etc/e-smith/templates-custom/etc/my.cnf/ echo "server-id = 1" > /etc/e-smith/templates-custom/etc/my.cnf/0061MSTR_REPLIC echo "show-slave-auth-info" >> /etc/e-smith/templates-custom/etc/my.cnf/0061MSTR_REPLIC echo "slave_compressed_protocol" >> /etc/e-smith/templates-custom/etc/my.cnf/0061MSTR_REPLIC echo "log-bin=mysql-bin" >> /etc/e-smith/templates-custom/etc/my.cnf/0061MSTR_REPLIC config setprop mysqld LocalNetworkingOnly no expand-template /etc/my.cnf service mysqld restart
création d'un utilisateur Mysql pour l'utilisateur qui servira à faire les mise à jour
mysql mysql> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'; mysql> FLUSH PRIVILEGES; mysql> exit;
petite explication:
- remplacez "*.*" par "BASE.*" si vous voulez repliquer une seule base, par "BASE.table" pour une seule table, ou par "BASE.table1, BASE.table2" pour 2 tables precises
- remplacez "repl" par votre nom d'utilisateur voulu
- remplacez "%.mydomain.com" par l'adresse de l'hote ou est hebergé le serveur mysql esclave
- remplacez "slavepass" par le mot de passe de votre choix
Configuration du SME7-2 esclave
mkdir -p /etc/e-smith/templates-custom/etc/my.cnf/ echo "server-id =2" > /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "master-host = www.DOMAINE.com" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "master-user = repl" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "master-password = slavepass" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "master-port = 3306" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "replicate-do-db= bdd_blog" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "replicate-do-db= bdd_phpwebgallery" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "replicate-do-table= bdd_faq.table" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "show-slave-auth-info" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC echo "slave_compressed_protocol" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC expand-template /etc/my.cnf service mysqld restart
petite explication:
- remplacez "www.DOMAINE.com" par le domaine de votre base mysql maitre,
- remplacez "repl" par votre nom d'utilisateur voulu
- remplacez "slavepass" par le mot de passe de votre choix
- remplacez 3306 par un autre port si necessaire
- remplacez ce qui est en face de "replicate-do-db" et "replicate-do-table" par les base et tables vous interessant
A ce sujet, ne jamais répliquer la base nommé mysql ! Il n'est pas recommandé non plus de répliquer les bases nommées test et phpmyadmin (si celle-ci existe)
Création des bases de données sur le serveur esclave
Attention ! Ne pas oublier le point-virgule en fin de ligne qui sert à valider votre commande ... En cas d'oubli vous pouvez le taper directement sur la ligne suivante.
mysql mysql> CREATE DATABASE bdd_blog; -> CREATE DATABASE bdd_phpbb; -> CREATE DATABASE bdd_phpwebgallery; -> CREATE DATABASE bdd_faq; -> CREATE DATABASE t_nardoux; #on charge les données mysql> LOAD DATA FROM MASTER; # on lance le procesus de mise à jour mysql> START SLAVE; # on verifie que cela fonctionne en verifiant les "logs" mysql> SHOW SLAVE STATUS; mysql> exit;
remerciement
Grand-Pa [1]
Thierry Nardoux [2]
l'equipe Mysql [3]