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 :

Synchronisation de deux bases de données( locale et distante)


Sujet :

Administration MySQL

  1. #41
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut Artemus.

    Pour le désinstaller, vous devez vous rendre dans le panneau de configuration / programmes et fonctionnalités.
    Vous devez avoir quelque chose sous le nom de "xamp". Il suffit de cliquer dessus, et on vous proposera la désinstallation.
    oui je l'ai déjà fait ! je voulais juste m'assurer que mariaDB est désinstallée aussi



    En effet, pour tester la réplication, il vous faut deux serveurs mysql, l'un en master et l'autre en slave.
    Pour ce faire, il suffit d'en installer un, et de le duppliquer. La différence va se faire dans le fichier "my.ini".
    L'un sera utilisé avec le port 3306 et l'autre avec le port 3307.
    qu'entendez vous par dupliquer le serveur ? cp/coller!?


    une fois j'ai rajouté les lignes dans le fichier my.ini, j'ai perdu la connexion au serveur mysql, tout marchait bien, je ne sais pas si cet ajout qui a engendré cet erreur :
    Vous devez avoir un fichier compte-rendu des erreurs de mysql.
    Le serveur Mysql, c'est aussi un service qui tourne en permanence. S'il y a un erreur, le service ne démarre pas.
    Il faut faire attention à ce que vous faites quand vous modifiez le fichier "my.ini".

    Il existe des petites différences entre ces deux SGBDR, mais je préfère MySql parce que je suis habitué.
    ca tombe bien car je vais utiliser plutot mySql


    La première occurrence des serveurs dans le fichier "config.inc.php" commence à 1 et non à zéro.
    Vous devez laisser cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "/* First server */
    $i++;
    cette ligne a la base n'est pas dans mon fichier, du coup je l'ajoute, je vous montre mon ficher my.ini

    Avant de faire quoi que ce soit, il faut l'installer et le configurer et cela demande du temps et de la patience.
    Normalement, vous ne devriez pas avoir autant d'erreur, si le paramétrage de xamp était fait correctement.
    j'ai passé beaucoup de temps dessus, et je suis pressée, me reste plus beaucoup de temps !!!


    Comme dit plus haut, l'installation doit se faire en sachant que vous ne devez pas mettre d'espace dans le chemin.
    Vous n'êtes pas obligé de le mettre dans "program file", mais à la racine de votre disque "c:", sous le nom "c:/mysql/mysql...".les ... sont le numéros de la version que vous avez installé.
    Du coup, dans "c:/mysql", vous pouvez créer un répertoire de nom "Logs".
    je n'ai pas le repertoire mysql dans la racine c:, donc ca va etre créé par la suite !


    De phpmyadmin, non, mais pour les autres composants (apache, php) hormis mysql, je ne sais pas répondre.
    Car si vous avez déjà un existant, vous devez vous en servir et non créer un autre environnement.
    Pour les tests, oui, cela est nécessaire afin de ne pas tout modifier (ou casser).
    L'intégration sera facile à faire par la suite.


    Si vous avez configuré le fichier "my.ini", la création du compte "replicant", et l'activation des "binary log", coté master, et si vous tapez la commande suivante :
    et si vous avez un résultat, c'est que votre configuration fonctionne !
    j'ai un résultat comme vous avez pu voir dans les captures que je vous ai envoyé, mais la position change à chaque fois et la réplication n'a pas été faite, du coup ca fonctionne pas encor


    Vous avez toujours la même erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    last_io_errno : 1130
    last_io_error : error connectiong to master 'replicant@10.24.60.232:3306' - retry-time: 60 retries: 1
    Vous avez un problème d'autorisation concernant le compte "replicant" et l'adresse ip "10.24.60.232".
    --> https://stackoverflow.com/questions/...-1130-in-mysql

    Vous avez déclaré comme adresse IP du serveur mysql master : "192.168.1.10.
    Pourquoi avez-vous mis cette adresse "10.24.60.232" pour atteindre le serveur mysql master depuis le serveur mysql slave ?
    non l'adresse ip de mon serveur master est : 10.24.60.232 je n'ai pas du tout déclaré 192.168.1.10 !!


    Quand je vous donne l'adresse "192.168.1.10", c'est juste un exemple pour illustrer ce qu'il faut faire !
    Mais bien sûr j'ai vérifié avec mes adresses ip ! il s'agit bien de 10.24.60.232 pour le master et 10.24.60.250 pour le slave


    @+

  2. #42
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut rania_nina.

    Citation Envoyé par rania_nina
    Mais bien sûr j'ai vérifié avec mes adresses ip ! il s'agit bien de 10.24.60.232 pour le master et 10.24.60.250 pour le slave
    L'erreur est explicite, vous avez un problème de connexion avec le serveur master.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    last_io_errno : 1130
    last_io_error : error connectiong to master 'replicant@10.24.60.232:3306' - retry-time: 60 retries: 1
    Comme je vous l'ai dit précédemment, ne mettez pas "@10.24.60.232:3306" mais "@%".
    Ensuite, le compte replicant a-t-il toutes les autorisations pour jouer son rôle ?
    Peut-être un problème de mot de passe ?

    Je ne peux pas vous aider car l'origine du problème peut-être multiple.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #43
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut Artemus24.

    L'erreur est explicite, vous avez un problème de connexion avec le serveur master.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    last_io_errno : 1130
    last_io_error : error connectiong to master 'replicant@10.24.60.232:3306' - retry-time: 60 retries: 1
    oui vous avez raison
    Comme je vous l'ai dit précédemment, ne mettez pas "@10.24.60.232:3306" mais "@%".
    d'accord je vais changer la configurationet mettre % au lieu de l'adresse
    Ensuite, le compte replicant a-t-il toutes les autorisations pour jouer son rôle
    j'ai fait la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     grant replication slave to *.* to 'user' @ 'adresse ip' ;
    et ensuite j'ai fait du coup le compte user a les autorisations non ?
    Peut-être un problème de mot de passe ?
    je ne pense pas que c'est un probleme de mot de passe, car j'ai fait attention à l'écrire correctement !


    @+

  4. #44
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut rania_nina.

    Il reste à vérifier que le port 3306 soit bien ouvert entre vos deux serveurs master & slave.
    Peut-être un problème de pare-feu dans windows !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #45
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut Artemus,

    j'ai vérifié avec la commande netstat, le statut est en écoute
    du coup le problème n'est pas là

    A+

  6. #46
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut rania_nina.

    Je suis à court d'idée.

    Peut-être faut-il mettre "bind = 0.0.0.0" dans le fichier "my.ini" de master, si cela n'a pas encore été fait ???

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #47
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut Artemus,

    il est probable que j'ai mal fait l'export de la DB, enfaite ja' utilisé Data export ensuite j'ai récupéré le fichier dump.sql dans une clé USB et j'ai importé au niveau du slave, c'est bien ca ce qu'il faut faire non ?

    pour bind-address=0.0.0.0 c'est effectivement déjà fait !

    j'ai 4 questions :

    1) comme vous le savez, j 'aurai plusieurs utilisateurs et donc plusieurs bases de données locales liée à une base de données distante, en utilisant cette configuration master/master. quel est le nombre maximal des utilisateurs que je peux avoir ?

    2)avez-vous déjà testé de faire sortir un utilisateur du réseau, ensuire faire une modification dans le master, quand le slave revient au réseau, est ce que toutes les mofications vont être synchronisées ??

    3)j'ai désinstallé mysql d'un poste (j'ai arrêté le service puis j'ai supprimé la variable de l'environnement) et j'ai vérifié un peu partout avant de réinstaller un nouveau, en le démarrant y a aucun problème, avant de configurer quoi que ce soit j'ai testé la commande le resultat est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mysql> show master status ;
    +---------------------+----------+--------------+------------------+-------------------+
    | File                | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +---------------------+----------+--------------+------------------+-------------------+
    | MUL-N003-bin.000004 |      155 |              |                  |                   |
    +---------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    je me comprends pas ! normalement je devrai avoir le resultat suivant : Empty set (0.00 sec)

    avez-vous une idée de la source du problème ?

    4)comment peut-on enlever/suppr/desinstaller la configuration master ???

    Merci
    A+

  8. #48
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut rania_nina.

    Il y a fort longtemps, un utilisateur avait demandé de l'aide, comme vous, sur un problème de réplication master/slave.
    Comme je n'en avais jamais fait, et pour cause je n'en ai pas besoin chez moi, j'ai fait le test.
    J'ai recréé le même environnement que cet utilisateur afin de reproduire son problème.

    J'ai cherché sur le net des explications que j'ai reproduit à l'identique et je n'ai rencontré aucun problème.
    Bon, c'est sûr, je n'ai pas réussi du premier coup, à reproduire son problème.
    Au final, j'ai compris que le cœur du problème était les fichiers de rotations binary_log.

    L'utilisateur avait un problème de synchronisation, suite à un plantage du slave.
    Il ne savait pas faire un recovery à partir d'un point de restauration. Il faut pour cela utiliser "mysqlbinlog".
    Hormis l'extraction des données à partir d'un point de reprise, la procédure n'est pas très compliquée à faire.
    C'est un import du fichier ".sql" du master, vers le serveur slave.

    Votre problème à vous est de créer l'environnement Master/Slave et c'est tout.
    Pas de problème de synchronisation, pas de base de données à récupérer.
    Juste à faire un test avec une base de données vide, pour voir si l'installation fonctionne.
    Ensuite, vous transformez votre environnement Master/Slave en Master/Master, et vous faites à nouveau un test des deux cotés.

    Avez-vous bien fait dans le Slave, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    STOP slave;
    CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replication_user', MASTER_PASSWORD='motdepasse', MASTER_LOG_POS=123456;
    START slave;
    Vous reportez la position 123456 du master dans cette commande afin de démarrer la réplication.

    Citation Envoyé par rania_nina
    il est probable que j'ai mal fait l'export de la DB
    Pour le test, vous n'avez même pas besoin d'exporter quoi que ce soit.
    Une base vide des deux cotés et c'est tout. Le test, vous faites une insertion du coté Master et vous voyez si le résultat apparaît coté Slave.

    Citation Envoyé par rania_nina
    pour bind-address=0.0.0.0 c'est effectivement déjà fait !
    Cela signifie deux choses :
    --> que vous gérez des adresses en provance du réseau TCP,
    --> que vous gérez que des adresses IPv4, mais pas des adresses IPv6.

    Si vous mettez 127.0.0.1, c'est uniquement en local que les échanges vont se faire.

    Citation Envoyé par rania_nina
    j'aurai plusieurs utilisateurs et donc plusieurs bases de données locales liée à une base de données distante
    Est-ce la même base de données ?

    Citation Envoyé par rania_nina
    cette configuration master/master. Quel est le nombre maximal des utilisateurs que je peux avoir ?
    En Master/Slave, on peut avoir plusieurs Slave pour un Master.
    Je pense que c'est cette configuration dont vous avez besoin.
    Comme vous avez pu le constater, les déclaratives concernent le master dans l'environnement Slave.

    En Master/Master, je n'en ai aucune idée.

    Citation Envoyé par rania_nina
    faire une modification dans le master, quand le slave revient au réseau, est ce que toutes les modifications vont être synchronisées ??
    Les échanges se font du Master vers les Slave.
    Si vous arrêtez le master, il n'y a aucun problème pour le relancer.

    Inversement, si vous arrêtez un slave, mais pas les autres, vous aurez un problème de synchronisation.
    Vous devez utiliser la position du dernier point valide dans le Slave pour le relancer avec la commande ci-dessus.

    Citation Envoyé par rania_nina
    le resultat est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mysql> show master status ;
    +---------------------+----------+--------------+------------------+-------------------+
    | File                | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +---------------------+----------+--------------+------------------+-------------------+
    | MUL-N003-bin.000004 |      155 |              |                  |                   |
    +---------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    je ne comprends pas ! Normalement je devrai avoir le résultat suivant : Empty set (0.00 sec)
    Vous devez comprendre que le Master gère un flux de commande sur une base de données.
    Si vous faites un "truncate votre_table", la table sera remise à zéro et dans le fichier de rotation binary_log, la commande "truncate ..." sera stockée.
    Tout comme si vous faites un "insert votre_table ...", il y aura une nouvelle ligne dans la table, et dans le fichier de rotation binary_log, vous aurez la commande "insert ..." qui sera aussi stockée.
    Chaque commande va s'insérer dans le fichier binary_log, en faisant avancer la position d'un cran.

    Si vous désirez remettre les binary_log à zéro, il faut les détruire aussi.

    Citation Envoyé par rania_nina
    comment peut-on enlever/suppr/désinstaller la configuration master ???
    Si vous désirez que le serveur master ne joue plus son rôle de master, vous devez désactiver les fichiers binary_log.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    skip-log-bin
    skip-log-slave-updates
    Détruire aussi le user "replicant" !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #49
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut Artemus

    Il y a fort longtemps, un utilisateur avait demandé de l'aide, comme vous, sur un problème de réplication master/slave.
    Comme je n'en avais jamais fait, et pour cause je n'en ai pas besoin chez moi, j'ai fait le test.
    J'ai recréé le même environnement que cet utilisateur afin de reproduire son problème.
    c'est sympa ! le problème peut être la version de MySQL ? avez vous testé avec le workbench ?

    J'ai cherché sur le net des explications que j'ai reproduit à l'identique et je n'ai rencontré aucun problème.
    Bon, c'est sûr, je n'ai pas réussi du premier coup, à reproduire son problème.
    Au final, j'ai compris que le cœur du problème était les fichiers de rotations binary_log.
    j'ai reproduit à l'identique aussi, mais quand je rajoute dans le master, normalement ca doit etre synchronisé du coté slave, chose qui ne se produit pas !
    donc j'ai un problème de synchronisation, le slave n'arrive pas à se connecter correctement au master

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error 1130 error connecting to master

    Votre problème à vous est de créer l'environnement Master/Slave et c'est tout.
    Pas de problème de synchronisation, pas de base de données à récupérer.
    Juste à faire un test avec une base de données vide, pour voir si l'installation fonctionne.
    Ensuite, vous transformez votre environnement Master/Slave en Master/Master, et vous faites à nouveau un test des deux cotés.
    effectivement mais ca plante au niveau du master/slave

    Avez-vous bien fait dans le Slave, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    STOP slave;
    CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='replication_user', MASTER_PASSWORD='motdepasse', MASTER_LOG_POS=123456;
    START slave;
    Vous reportez la position 123456 du master dans cette commande afin de démarrer la réplication.
    oui, j'ai suivi à la lettre !


    Pour le test, vous n'avez même pas besoin d'exporter quoi que ce soit.
    Une base vide des deux cotés et c'est tout. Le test, vous faites une insertion du coté Master et vous voyez si le résultat apparaît coté Slave.
    c'est là où ca plante, même si j'insère du coté master, le résultat n'apparaît pas coté Slave !


    Si vous désirez que le serveur master ne joue plus son rôle de master, vous devez désactiver les fichiers binary_log.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    skip-log-bin
    skip-log-slave-updates
    Détruire aussi le user "replicant" !
    je l'ai fait et pourtant quand je fais la commande show master status ;
    il m'affiche ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mysql> show master status ;
    +---------------------+----------+--------------+------------------+-------------------+
    | File                | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +---------------------+----------+--------------+------------------+-------------------+
    | MUL-N003-bin.000005 |      155 |              |                  |                   |
    +---------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)

    Merci beaucoup pour vos explications !

    @+[/QUOTE]

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/11/2011, 15h09
  2. Synchronisation entre deux bases de données
    Par kimTunisia dans le forum Administration
    Réponses: 0
    Dernier message: 30/07/2011, 11h05
  3. Synchronisation de deux base de données (dont un base SQL Server 2000)
    Par Messie dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 27/02/2009, 09h32
  4. synchronisation entre deux bases de données via un webService
    Par débutant_C# dans le forum Services Web
    Réponses: 3
    Dernier message: 09/05/2008, 23h19
  5. [MySQL] Synchronisation de deux base de données
    Par Asmodean dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/04/2007, 19h01

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