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

SQL Procédural MySQL Discussion :

Synchronisation de deux bases de données


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut Synchronisation de deux bases de données
    Bonjour,

    J'aimerais savoir si ce que je souhaite faire est possible.

    Sur le serveur A j'ai plusieurs table (table1, table2, table3,...)
    Sur le serveur B j'ai exactement les mêmes tables (table1, table2, table3,...)

    Dans chacune des tables, j'ai un champ user_id, les autres champs ont peu d'importance

    J'aimerais, de façon automatique, que lorsque qu'une table est mise a jour, par exemple lorsque 1 ligne est insérée et que le user_id de cette ligne correspond au user_id 23 par exemple, que cette ligne s'ajoute également dans la table correspondante du serveur B.

    En gros une réplication en temps réel (enfin a peu près) de données du server A vers le serveur B.

    D'avance merci

  2. #2
    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 344
    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 344
    Points : 18 919
    Points
    18 919
    Par défaut
    Salut Anleclerc.

    Sous MySql, il existe le concept de Master/Slave, mais je ne l'utilise pas.
    Votre serveur B sera le Slave et le serveur A, le master. C'est ce que l'on nomme de la réplication.

    Sinon, vous pouvez utiliser des déclencheurs (trigger) pour faire par vous-même votre propre réplication.
    A lire : https://dev.mysql.com/doc/refman/5.7/en/triggers.html

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Bonjour Artemus,

    J'avais vu pour le master / slave, mais toucher à la conf n'est pas le mieux pour moi n'ayant pas accès à la totalité de celle-ci.

    Le trigger dans une pro stock pourrait faire ce que je veux, par contre je ne n'ai pas trouvé à quel moment on doit indiquer la connexion à la seconde base sur le serveur B.

    Ne devrait-il pas y avoir à un moment la données de host/login/password et peut être schéma quelque part ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Ok je pense avoir trouvé il faudrait que je modifie la table du serveur A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE [db_A].[table_A] ENGINE=FEDERATED
    CONNECTION='mysql://[host_B]/[db_B]/[table_B]';

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Je n'arrive pas trouver comment rentrer le user et login de la connexion au serveur B, quelqu'un aurait une piste.

    En local tout marche bien par contre

  6. #6
    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 344
    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 344
    Points : 18 919
    Points
    18 919
    Par défaut
    Salut anleclerc..

    Je n'utilise pas "engine=federated" car je fais tout en local. Donc difficile de t'aider.

    Tu peux te référer à la documentation officielle de MySql, pour quelques exemples !
    --> http://dev.mysql.com/doc/refman/5.7/...ge-engine.html
    --> http://dev.mysql.com/doc/refman/5.7/...onnection.html

    --> http://www.sqlpac.com/referentiel/do...-federated.htm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ENGINE=FEDERATED
    CONNECTION='scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name'</table_name>
    Il faut se méfier des didacticiels à deux balles. La plupart sont truffés d'erreurs car ils n'ont pas été testés.

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

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2016
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Yes, j'avais trouvé par la suite mais oublié de l'indiquer dans le topic.

    ça fonctionne très bien

    Merci de ton aide

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/11/2011, 16h09
  2. Synchronisation entre deux bases de données
    Par kimTunisia dans le forum Administration
    Réponses: 0
    Dernier message: 30/07/2011, 12h05
  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, 10h32
  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: 10/05/2008, 00h19
  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, 20h01

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