Question

Ce que j'ai :

  • une machine Windows avec une instance de MySQL 5.6 Server.
  • deux bases de données nommées test et test2.
  • Test la base de données a une table appelée activity avec des colonnes id et class

Ce dont j'ai besoin :

  • réplication de test.activity table à test2 base de données avec une condition qui Test.activity.class = 'B'.

Je sais comment répliquer sur différents serveurs.Mais pas pour le même serveur dans une base de données différente. J'ai vérifié ce lien , mais cela ne donne pas suffisamment d'informations.

Était-ce utile?

La solution

Ce ne serait pas du tout une situation normale !Vous ne pouvez pas modifier la base de données lors de la réplication et le maître/esclave ne peut pas avoir les mêmes identifiants de serveur.Je vous recommande, si vous devez le faire, de configurer des déclencheurs sur la première base de données, pour répliquer les commandes d'insertion/mise à jour sur la seconde.

Autres conseils

Parce que c'est sur le même serveur, pourquoi n'utilisez-vous pas un déclencheur pour ça ?

Si vous souhaitez simplement répliquer des données, vous pouvez ajouter un déclencheur lors de la mise à jour ou lors de l'insertion ou les deux, selon vos besoins.De cette façon, vous pouvez utiliser votre condition facilement.La réplication maître/esclave serait meilleure pour différents serveurs.

Vous pouvez regarder ici pour des exemples de déclencheurs mysql.Et ici est un exemple pour votre cas.

Si j'ai bien compris votre besoin, vous pouvez avoir 2 instances MySQL sur un seul serveur (OS), vous pouvez alors en configurer une comme maître et une autre comme esclave.Vous devez créer différents my.conf, nous l'avons nommé my1.conf et my2.conf, chacun devant être différent en termes de numéro de port, de chemin de socket, de chemin d'erreur du journal et de certains autres paramètres.Avec cette approche, vous exécuterez 2 démons MySQL avec des configurations différentes.Pour le document complet, rendez-vous sur https://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html .

Essayez mysql sandbox, cela résoudra probablement votre problème (http://mysqlsandbox.net/)

Parce que:

Réplication de la base de données Test.Activity to Test2 avec une condition que Test.Activity.class = 'B'.

La réplication native n'aide pas, et dans ce cas, il est préférable de laisser les deux bases de données sur le même serveur et d'installer simplement le déclencheur pour INSER/UPDATE/DELETE sur la base de données principale, qui vérifiera les conditions et apportera des modifications directes sur la deuxième base de données.

C'est la manière la plus simple.Il y en a bien d’autres possibles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top