我有一個已投入生產的 MySQL 資料庫,並使用 phpmyadmin 和 mysqldump/restore 保存和還原了幾次。我懷疑「生產活動」在該資料庫結構和從定義 SQL 的原始模式建立的任何新「原始」資料庫之間引入了一些差異。
當我嘗試使用 來將生產資料庫與全新實例進行比較時mysqldiff
,我得到:
$ 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.
當指定資料庫對時,一個資料庫中的所有物件都會與另一個資料庫中的對應物件進行比較。任何未出現在任一資料庫中的物件都會產生錯誤。
是否可以獲得調試資訊?
我需要做什麼才能產生有用的差異報告?
註:我正在跑步
mysql Ver 14.14 Distrib 5.5.43
- 烏班圖Linux
答案1
mysqldiff
只是告訴您,關於資料庫名稱,兩個資料庫之間存在差異:dev_si_brand_new
與prod_si
。
如果您不想mysqldiff
在遇到的第一個差異處停止並繼續比較,只需將參數新增--force
至命令列:
- 力量
不要在發現第一個差異時就停下來。處理所有物件以找出所有差異。
mysqldiff --force --server1=root@localhost dev_si_brand_new:prod_si