IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Difficultés avec réplication MySQL 5 Linux


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut Difficultés avec réplication MySQL 5 Linux
    Bonjour,

    Je tente de créer un système de réplication MySQL avec :

    - un serveur maître MySQL 5.0.22 sur une Ubuntu Dapper Drake Server

    - un serveur esclave MySQL 5.0.21 sur une Ubuntu Dapper Drake Server

    Chaque serveur tourne sur une machine virtuelle VMWare, l'OS hôte est également une Ubuntu (Feisty Fawn, 7.04).

    J'utilise le livre 'MySQL 5 guide de l'administrateur et du développeur' chez Eyrolles. La manip se situe sur les pages 402 à 410.

    Mes manips :

    Côté maître (IP: 172.16.219.155) :

    1.
    Modification fichier /etc/mysql/my.cnf pour ouverture vers extérieur et id unique

    # bind-address = 127.0.0.1
    log_bin = /var/log/mysql/mysqlmasteur-bin.log
    server-id = 1
    binlog_ignore_db = mysql # je ne veux pas répliquer la base mysql

    Reboot du serveur MySQL maître

    2.
    Creation d'une base d'essai sur le maître :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE DATABASE essai;
    use essai;
    CREATE TABLE e (chaine TEXT);
    INSERT INTO essai.e VALUES ('a');
    3.
    creation d'un utilisateur pour l'esclave :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GRANT REPLICATION SLAVE, SELECT, RELOAD, SUPER ON *.* TO 'replicuser'@'%' identified by 'replicuser';
    FLUSH PRIVILEGES;
    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    Résultat du SHOW MASTER STATUS :



    4.
    Puis une sauvegarde de toutes les bases :

    mysqldump -u root -p --all-databases --master-data --single-transaction > dump

    Et reboot du serveur MySQL maître

    Un coup d'oeil sur la processlist :



    Côté esclave (172.16.219.156) :

    Tentative d'ouverture de session avec le compte 'replicuser' sur le serveur MySQL maître OK, rien à voir avec la réplication, c'est juste un essai.

    1.
    Modification fichier /etc/mysql/my.cnf pour ouverture vers extérieur et id unique
    # bind-address = 127.0.0.1 (communication avec exterieur)
    server-id = 2

    Reboot du serveur MySQL esclave

    2.
    J'injecte le dump dans ma base :

    mysql -u root -p < dump

    3.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CHANGE MASTER TO 
     MASTER_HOST = '172.16.219.155', 
     MASTER_USER = 'replicuser', 
     MASTER_PASSWORD = 'replicuser', 
     MASTER_LOG_FILE = 'mysqlmaster-bin.000003', 
     MASTER_LOG_POS = 98
     ;
    4.
    START SLAVE;

    Là je regarde la processlist :




    5.
    J'insert des données dans ma base essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO essai.e VALUES ('b');
    INSERT INTO essai.e VALUES ('c');
    Et là rien de chez rien côté esclave, pas de mise à jour...

    J'ai refait plusieurs tentatives (en reprenant du début et en effectuant un RESET SLAVE après avoir réinjecté le nouveau dump du maître) mais ça ne fonctionne pas.

    A noter que je n'ai pas d'autres messages d'état que ceux que j'ai mis en exemple pour les processlist maître et esclave (excepté un changement d'ID des messages) et qu'en insérant des données dans les tables du serveur maître le log binaire ne change pas, sauf en cas de reboot ou le numéro de fichier s'incrémente et la position reste à 98.

    Auriez-vous une expérience/avis sur ce problème ?

    En vous remerciant,

    C. Tobini

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Je me réponds, avec la grosse déception d'avoir écrit un joli post qui ne sert à rien

    En insérant un grand nombre de lignes avec un script sur le serveur maître, la synchronisation se passe sans soucis sur l'esclave...

    Il y a une chose que je ne comprends pas: pourquoi l'insertion manuelle de quelques lignes sur le maître ne fait pas varier la position du binlog et du coup il n'y a pas de mise à jour côté esclave ?

    Quelqu'un aurait la réponse à cette problématique ?

  3. #3
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    La version de l'esclave est inférieure à celle du maître. Je ne dit pas que ça pause nécessairement problème, mais c'est déconseillé. Il faut au moins une version plus récente pour l'esclave et idéalement la même.

    Normalement toute requête devrait arriver dans le log. Est-ce en transactionnel (par exemple sans autocommit) ?

    MySQL arrive avec "mysqlbinlog" qui permet de rendre un log binaire plus lisible. Tu pourrais vérifier si le log est bien à jour est confirmer que c'est un problème de transmission à l'esclave.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par ctobini Voir le message
    Bonjour,

    Je tente de créer un système de réplication MySQL avec :

    - un serveur maître MySQL 5.0.22 sur une Ubuntu Dapper Drake Server

    - un serveur esclave MySQL 5.0.21 sur une Ubuntu Dapper Drake Server

    Chaque serveur tourne sur une machine virtuelle VMWare, l'OS hôte est également une Ubuntu (Feisty Fawn, 7.04).

    J'utilise le livre 'MySQL 5 guide de l'administrateur et du développeur' chez Eyrolles. La manip se situe sur les pages 402 à 410.

    Mes manips :

    Côté maître (IP: 172.16.219.155) :

    1.
    Modification fichier /etc/mysql/my.cnf pour ouverture vers extérieur et id unique

    # bind-address = 127.0.0.1
    log_bin = /var/log/mysql/mysqlmasteur-bin.log
    server-id = 1
    binlog_ignore_db = mysql # je ne veux pas répliquer la base mysql

    Reboot du serveur MySQL maître

    2.
    Creation d'une base d'essai sur le maître :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE DATABASE essai;
    use essai;
    CREATE TABLE e (chaine TEXT);
    INSERT INTO essai.e VALUES ('a');
    3.
    creation d'un utilisateur pour l'esclave :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GRANT REPLICATION SLAVE, SELECT, RELOAD, SUPER ON *.* TO 'replicuser'@'%' identified by 'replicuser';
    FLUSH PRIVILEGES;
    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    Résultat du SHOW MASTER STATUS :



    4.
    Puis une sauvegarde de toutes les bases :

    mysqldump -u root -p --all-databases --master-data --single-transaction > dump

    Et reboot du serveur MySQL maître

    Un coup d'oeil sur la processlist :



    Côté esclave (172.16.219.156) :

    Tentative d'ouverture de session avec le compte 'replicuser' sur le serveur MySQL maître OK, rien à voir avec la réplication, c'est juste un essai.

    1.
    Modification fichier /etc/mysql/my.cnf pour ouverture vers extérieur et id unique
    # bind-address = 127.0.0.1 (communication avec exterieur)
    server-id = 2

    Reboot du serveur MySQL esclave

    2.
    J'injecte le dump dans ma base :

    mysql -u root -p < dump

    3.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CHANGE MASTER TO 
     MASTER_HOST = '172.16.219.155', 
     MASTER_USER = 'replicuser', 
     MASTER_PASSWORD = 'replicuser', 
     MASTER_LOG_FILE = 'mysqlmaster-bin.000003', 
     MASTER_LOG_POS = 98
     ;
    4.
    START SLAVE;

    Là je regarde la processlist :




    5.
    J'insert des données dans ma base essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO essai.e VALUES ('b');
    INSERT INTO essai.e VALUES ('c');
    Et là rien de chez rien côté esclave, pas de mise à jour...

    J'ai refait plusieurs tentatives (en reprenant du début et en effectuant un RESET SLAVE après avoir réinjecté le nouveau dump du maître) mais ça ne fonctionne pas.

    A noter que je n'ai pas d'autres messages d'état que ceux que j'ai mis en exemple pour les processlist maître et esclave (excepté un changement d'ID des messages) et qu'en insérant des données dans les tables du serveur maître le log binaire ne change pas, sauf en cas de reboot ou le numéro de fichier s'incrémente et la position reste à 98.

    Auriez-vous une expérience/avis sur ce problème ?

    En vous remerciant,

    C. Tobini
    salut
    j'ai eu à utiliser rigoureusment cette méthode avec deux serveurs mysql identiques sauf que:
    -lorque je regarde la processlist du côté de l'esclave j'ai pas le message "waiting for master to send event" à la place j'ai NULL mais j'ai bien l'autre message "Has read....."
    avec une erreur "no query specified"
    -les modifications faites sur le serveur maitre ne sont pas repercutées sur le serveur esclave même en utilisant un script sql d'enregistrements

    du coup je ne sais pas trop où est le problème?
    si quelqu'un peu m'aider....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compiler sous C::B/linux avec api MySql
    Par pierro91 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 19/02/2014, 19h43
  2. Réponses: 0
    Dernier message: 31/05/2010, 15h33
  3. [WD10] Difficultés avec MySQL et Windev
    Par beaudelson dans le forum WinDev
    Réponses: 1
    Dernier message: 02/09/2009, 13h23
  4. difficulté avec vmware reseau windows-linux
    Par the_cat dans le forum VMware
    Réponses: 3
    Dernier message: 06/09/2007, 09h40
  5. Mysql 5: difficulté avec load data infile
    Par koueletbak dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/05/2006, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo