11
votes

Comparez deux bases de données MySQL, sur la ligne de commande, avec un outil gratuit

J'aimerais générer des fichiers SQL diff pour comparer les données et la structure de deux bases de données MySQL.

Ces fichiers résultants seraient exécutés sous forme de requêtes SQL, sur la ligne de commande.

Il y a divers vieux threads liés à ce sujet et sur divers forums, mais ils traitent avec un outil non libre avec l'interface utilisateur (pas des outils de ligne de commande).

En outre, la base de données ne doit pas être synchronisée directement, mais uniquement en exécutant le script diff SQL résultant.


1 commentaires

Merci pour Galz et ADW pour votre aide. Même si je n'utilise pas la solution que vous avez proposée, je l'ai examiné de toute façon, il était donc utile. Je me creuse dans ATM Liquibase. Voir: Stackoverflow.com/Questtions/225772/compare-two-mysql- Databas ES qui est un problème connexe (mais plus large. Mon problème était surtout sur MySQL, la ligne de commande et l'outil gratuit). Vérifiez forum.liquibase.org/#topic/49382000000251069 aussi pour un exemple, et voir Si c'est une solution réalisable.


3 Réponses :


14
votes

Les suivants auront une allusion à vous montrer les différences (la première partie de votre question), mais la sortie ne sera pas vraiment utilisable en tant que fichiers de correctifs.

Pour comparer deux tables: P>

 mysqldump --extended-insert=FALSE -u whatever database1 > file1.txt
 mysqldump --extended-insert=FALSE -u whatever database2 > file2.txt
 diff file1.txt file2.txt


1 commentaires

diff fait partie de MySQL?



1
votes

Les outils pour le schéma comparent sont plus courants. Certains packages PERL sont équipés de ce qui peut facilement être exécuté à partir de la ligne de commande. J'ai aussi trouvé un pour Data Diff (qui est un problème assez complexe!), Mais c'est un peu vieux et je ne suis pas sûr à quel point c'est bon.

schéma comparer: http://adamspiers.org/computing/mysqlliff/

Données Comparer: http://rossbeyer.net/software/mysql_coldiff/

bonne chance.


0 commentaires

4
votes

Consultez la boîte à outils Percona Open-Source --- Spécifiquement, le PT-TABLE-SYNC utilitaire. Il utilise des checksums sur des index et d'autres stratégies de DIFF Tables rapides . Son objectif principal est de synchroniser les répliques, mais avec un petit travail supplémentaire, c'est un excellent outil de diff. Voir ma réponse complète à ce sujet ici .

EDIT < / Strong>: J'ai oublié de mentionner que la comparaison de la structure est une bête différente. Je fais cela avec une procédure stockée que vous pouvez appeler de la ligne de commande, mais ce n'est peut-être pas ce que vous recherchez.

Voici un extrait d'un wrapper de script shell que j'ai écrit pour montrer le schéma diffs: xxx

Il appelle la procédure stockée compaplasse , que j'ai eu de La page Archive de la requête logicielle artificielle .


1 commentaires

Merci d'avoir partagé Royce! Je ne savais pas Page d'archive de la requête logicielle artificielle !