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

MySQL Discussion :

Problème de synchronisation


Sujet :

MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut Problème de synchronisation
    Bonjour,

    J'essaye de mette en place une réplication entre serveur MYSQL ! Ca ne fonctionne pas, j'ai une erreur à la dernière étape.


    MASTER 1 (192.168.100.102) :


    => Je crée un utlisateur avec tout les droits qu'il faut sur le Master.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant replication slave on *.* to repl@% identified by 'lemotdepassedesync';

    => Je remplis le fichier Mysql.ini sur le Master.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [mysqld]
    port=3306
    server-id=1
    log-bin = C:/wamp/logs/mysql.log


    Serveur ESCLAVE (192.168.100.105)


    => Sur le serveur esclave je remplis le fichier Mysql.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [mysqld]
    server-id = 2
    datadir=c:/wamp/bin/mysql/mysql5.1.30/data
    basedir=c:/wamp/bin/mysql/mysql5.1.30
    bind-address=127.0.0.1
    log_bin = /var/log/mysql/mysql-bin.log
    report_host = 192.168.100.105
    master-host = 192.168.100.102
    master-user = repl
    master-password = password
    port=3306

    => Execute la ligne qu'il faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mysql> CHANGE MASTER TO MASTER_HOST='192.168.100.102',MASTER_USER='repl',MASTER_
    PASSWORD='password',MASTER_LOG_FILE='mysql.000007',MASTER_LOG_POS=106;
    Query OK, 0 rows affected (0.12 sec)


    => Démarre le serveur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql> start slave;
    Query OK, 0 rows affected (0.00 sec)

    => Charge les données depuis le master

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mysql> load data from master;
    ERROR 1218 (08S01): Error connecting to master: Access denied for user 'repl'@'3
    34070ZP108' (using password: YES)


    Et j'ai une erreur comme quoi l'utilisateur n'as pas les droits !! Avez-vous une idée ce mon problème, et comment le résoudre ?

    D'avance merci
    ++

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Si j'ai bien lu, tu donnes des droits à un utilisateur "sync" mais tu fais la réplication avec un utilisateur "repl" .
    Ce dernier n'a peut-être pas les droits sur le serveur master...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par ced Voir le message
    Bonjour,

    Si j'ai bien lu, tu donnes des droits à un utilisateur "sync" mais tu fais la réplication avec un utilisateur "repl" .
    Ce dernier n'a peut-être pas les droits sur le serveur master...

    ced
    Dans la table Master l'utilisateur s'apel bien "REPL" il à tout les droits, y a pas de soucis. C'est une erreur de frappe dans la ligne que j'ai affiché, je vais la modifier :/

    L'erreur est encore présente, j'ai un refus d'accés. Est-ce que l'on peut tester si la connexion se fait bien sur le Master, y a une ligne de commande pour cela ?

    D'avance merci
    ++

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    J'ai trouvé la réponse. En supprimant l'utilisateur et en le créant de nouveau, le même, avec le même mots de passe, je n'ai plus d'erreur...

    Comprendra pourquoi....


    Merci pr les réponses
    ++

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Il suffit d'installer le client mysql.exe sur le serveur de réplication, de le lancer dans une ligne de commande avec la connexion à tester.

    Pour plus d'aide, regarde également du côté de la FAQ .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par ced Voir le message
    Il suffit d'installer le client mysql.exe sur le serveur de réplication, de le lancer dans une ligne de commande avec la connexion à tester.

    Pour plus d'aide, regarde également du côté de la FAQ .

    ced
    Super merci J'ai constaté quelques chose, je pense que c'est dans le cours normal des choses.

    Quand j'insére des données sur le serveur Maitre, les données sont mis à jour sur le Slave c'est ce que je recherchais. Par contre, du moment que j'insére des données sur le serveur Slave, que je l'efface par la suite, la réplication ne fonctionne plus ! Est-ce quelques chose de normal ?

    Seconde question, j'aimerais (si possibe) que les serveurs se synchronisent entre eux. Si j'insére des données sur le serveur Maitre, le serveur Slave et mis à jour. Que l'inverse soit possible aussi, à savoir si j'insére des données sur le serveur Slave, le serveur Master soit mise à jour . Est-ce possible sans perte de donnée des deux cotés ? On m'as parlé de replication circulaire, est-ce bien cela ?

    D'avance merci
    ++
    Marc

  7. #7
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Désolé, je n'ai jamais mis en place de solution de réplication, donc ça n'est pas évident pour moi de t'aider, mais toutefois, sur la réplication bi-directionnelle, voici ce que dit la documentation MySQL à ce sujet :
    La réplication MySQL ne supporte aucun protocole de verrouillage entre le maître et l'esclave pour garantir l'atomicité d'une modification entre les serveurs. En d'autres termes, il est possible pour un client A de faire une modification sur le serveur 1 et que dans le même temps, avant que cela ne se soit propagé au serveur 2, un client B se connecte au serveur 2, et fasse une modification sur le serveur 2 qui ne débouchera pas sur le même état que celui dans lequel le serveur 1 est. C'est ainsi qu'il ne faut pas lier de cette façon deux serveurs, à moins que les modifications ne puisse se faire dans n'importe quel ordre, ou que vous sachiez prendre en charge des modifications anarchiques.

    Vous devez aussi réaliser que la réplication bi-directionnelle n'améliore pas beaucoup les performances, tout au moins au niveau des modifications. Les deux serveurs doivent faire la même quantité de modifications, ainsi qu'un serveur seul le ferait. La seule différence est qu'il va y avoir moins de verrous, car les modifications qui proviennent d'un autre serveur seront optimisé par l'esclave. Cet avantage peut aussi être annulé par les délais réseau.
    Visiblement, seule la réplication uni-directionnelle est conseillée... Il y a bien un exemple de réplication circulaire, mais à 3 serveurs (A -> B -> C -> A) et elle est déconseillée :
    dans une configuration circulaire, vous devez vous assurer que le code client n'effectue pas de modifications conflictuelles
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par ced Voir le message
    Désolé, je n'ai jamais mis en place de solution de réplication, donc ça n'est pas évident pour moi de t'aider, mais toutefois, sur la réplication bi-directionnelle, voici ce que dit la documentation MySQL à ce sujet :


    Visiblement, seule la réplication uni-directionnelle est conseillée... Il y a bien un exemple de réplication circulaire, mais à 3 serveurs (A -> B -> C -> A) et elle est déconseillée :


    ced
    Merci pour tes réponses super complètes
    Je vais regarder tout cela !

    ++

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

Discussions similaires

  1. problème de synchronisation de thread
    Par youp_db dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/10/2006, 11h34
  2. [VB.net] Problème de synchronisation d'une base
    Par WriteLN dans le forum Windows Forms
    Réponses: 18
    Dernier message: 21/10/2005, 13h11
  3. Problème de synchronisation...
    Par sankookai dans le forum MFC
    Réponses: 10
    Dernier message: 16/02/2005, 14h03
  4. [C#] Problème de synchronisation de combobox
    Par WwiloO dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/12/2004, 19h56
  5. Problème de synchronisation dans un JTextArea
    Par wutang dans le forum Composants
    Réponses: 3
    Dernier message: 21/06/2004, 15h06

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