Was ist der nächste Schritt, wenn dieser mysqldiff-Fehler auftritt?

Was ist der nächste Schritt, wenn dieser mysqldiff-Fehler auftritt?

Ich habe eine MySQL-Datenbank, die in Produktion war und einige Male mit phpmyadmin und mysqldump/restore gespeichert und wiederhergestellt wurde. Ich vermute, dass die „Produktionsaktivität“ einige Diskrepanzen zwischen dieser DB-Struktur und jeder neuen „unbearbeiteten“ Datenbank verursacht hat, die aus dem ursprünglichen Schema erstellt wurde, das SQL definiert.

Wenn ich versuche, die Produktionsdatenbank mit einer brandneuen Instanz zu vergleichen, mysqldifferhalte ich Folgendes:

$ mysqldiff --server1=root@localhost dev_si_brand_new:prod_si
# server1 on localhost: ... connected.
# Comparing `dev_si_brand_new` to `prod_si`                        [FAIL]
# Object definitions differ. (--changes-for=server1)
#

--- `dev_si_brand_new`
+++ `prod_si`
@@ -1 +1 @@
-CREATE DATABASE `dev_si_brand_new` /*!40100 DEFAULT CHARACTER SET latin1 */
+CREATE DATABASE `prod_si` /*!40100 DEFAULT CHARACTER SET latin1 */
Compare failed. One or more differences found.

Von demmysqldiff-Dokumentation

Wenn ein Datenbankpaar angegeben wird, werden alle Objekte in einer Datenbank mit den entsprechenden Objekten in der anderen verglichen. Alle Objekte, die in keiner der Datenbanken vorkommen, führen zu einem Fehler.

Ist es möglich, Debug-Informationen zu erhalten?
Was muss ich tun, um einen nützlichen Diff-Bericht zu erstellen?

Hinweis: Ich laufe

  • mysql Ver 14.14 Distrib 5.5.43
  • Ubuntu Linux

Antwort1

mysqldiffsagt Ihnen lediglich, dass es zwischen den beiden Datenbanken einen Unterschied hinsichtlich des Datenbanknamens gibt: dev_si_brand_newgegenüber prod_si.

Wenn Sie nicht möchten, mysqldiffdass beim ersten gefundenen Unterschied angehalten wird, sondern der Vergleich fortgesetzt wird, fügen Sie --forceIhrer Befehlszeile einfach das Argument hinzu:

--Gewalt

Bleiben Sie nicht beim ersten gefundenen Unterschied stehen. Verarbeiten Sie alle Objekte, um alle Unterschiede zu finden.

mysqldiff --force --server1=root@localhost dev_si_brand_new:prod_si

verwandte Informationen