Mysql replication : Différence entre versions
(→Configuration du SME7-2 esclave) |
(→remerciement) |
||
(7 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 7 : | Ligne 7 : | ||
== Configuration du SME7-1 maitre == | == Configuration du SME7-1 maitre == | ||
− | mkdir - /etc/e-smith/templates-custom/etc/my.cnf/ | + | 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 "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 "show-slave-auth-info" >> /etc/e-smith/templates-custom/etc/my.cnf/0061MSTR_REPLIC | ||
Ligne 13 : | Ligne 13 : | ||
echo "log-bin=mysql-bin" >> /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 | config setprop mysqld LocalNetworkingOnly no | ||
+ | |||
+ | ouverture des ports mysql vers l'extérieur si jamais l'esclave est sur le net: | ||
+ | db configuration setprop mysqld TCPPort 3306 | ||
+ | db configuration setprop mysqld access public | ||
+ | |||
+ | prise en compte des modifs: | ||
+ | |||
expand-template /etc/my.cnf | expand-template /etc/my.cnf | ||
service mysqld restart | service mysqld restart | ||
+ | signal-event remoteaccess-update | ||
+ | |||
création d'un utilisateur Mysql pour l'utilisateur qui servira à faire les mise à jour | création d'un utilisateur Mysql pour l'utilisateur qui servira à faire les mise à jour | ||
Ligne 26 : | Ligne 35 : | ||
petite explication: | petite explication: | ||
− | # remplacez "*.*" par "BASE.*" si vous voulez repliquer une seule base, par "BASE.table" pour une seule table, ou par "BASE.table1, | + | # 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 |
− | BASE.table2" pour 2 tables precises | + | |
# remplacez "repl" par votre nom d'utilisateur voulu | # 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 "%.mydomain.com" par l'adresse de l'hote ou est hebergé le serveur mysql esclave | ||
Ligne 33 : | Ligne 41 : | ||
== Configuration du SME7-2 esclave == | == Configuration du SME7-2 esclave == | ||
− | mkdir - /etc/e-smith/templates-custom/etc/my.cnf/ | + | 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 "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-host = www.DOMAINE.com" >> /etc/e-smith/templates-custom/etc/my.cnf/0061SLV_REPLIC | ||
Ligne 56 : | Ligne 64 : | ||
'''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)''' | '''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 == | == Création des bases de données sur le serveur esclave == | ||
Ligne 74 : | Ligne 81 : | ||
mysql> SHOW SLAVE STATUS; | mysql> SHOW SLAVE STATUS; | ||
mysql> exit; | mysql> exit; | ||
+ | |||
+ | == remerciement == | ||
+ | Grand-Pa [http://smeserver.fr] | ||
+ | |||
+ | Thierry Nardoux [http://blog.thierrynardoux.com/index.php?2005/08/27/244-synchronisation-de-deux-serveurs-mysql] | ||
+ | |||
+ | l'equipe Mysql [http://dev.mysql.com/doc/refman/4.1/en/replication-howto.html] | ||
+ | |||
+ | Antitaniom |
Version actuelle en date du 12 janvier 2009 à 16:01
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
ouverture des ports mysql vers l'extérieur si jamais l'esclave est sur le net:
db configuration setprop mysqld TCPPort 3306 db configuration setprop mysqld access public
prise en compte des modifs:
expand-template /etc/my.cnf service mysqld restart signal-event remoteaccess-update
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]
Antitaniom