Mysql replication : Différence entre versions
(→remerciement) |
|||
| (5 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 32 : | 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 55 : | 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 75 : | Ligne 83 : | ||
== remerciement == | == remerciement == | ||
| − | Grand-Pa [ | + | Grand-Pa [http://smeserver.fr] |
| + | |||
Thierry Nardoux [http://blog.thierrynardoux.com/index.php?2005/08/27/244-synchronisation-de-deux-serveurs-mysql] | 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] | 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