Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vergleichen Sie zwei MySQL-Datenbanken

Wenn Sie mit kleinen Datenbanken arbeiten, habe ich festgestellt, dass Sie mysqldump auf beiden Datenbanken mit --skip-comments ausführen können und --skip-extended-insert Optionen zum Generieren von SQL-Skripten, dann funktioniert das Ausführen von diff auf den SQL-Skripten ziemlich gut.

Durch das Überspringen von Kommentaren vermeiden Sie bedeutungslose Unterschiede, wie z. B. die Zeit, zu der Sie den mysqldump-Befehl ausgeführt haben. Durch die Verwendung von --skip-extended-insert Befehl stellen Sie sicher, dass jede Zeile mit einer eigenen Einfügeanweisung eingefügt wird. Dadurch wird die Situation beseitigt, in der ein einzelner neuer oder geänderter Datensatz eine Kettenreaktion in allen zukünftigen Insert-Anweisungen verursachen kann. Das Ausführen mit diesen Optionen erzeugt größere Dumps ohne Kommentare, daher ist dies wahrscheinlich nicht etwas, das Sie in der Produktionsumgebung tun möchten, aber für die Entwicklung sollte es in Ordnung sein. Ich habe Beispiele für die von mir verwendeten Befehle unten aufgeführt:

mysqldump --skip-comments --skip-extended-insert -u root -p dbName1>file1.sql
mysqldump --skip-comments --skip-extended-insert -u root -p dbName2>file2.sql
diff file1.sql file2.sql