簡體   English   中英

如何比較兩個MySql數據庫

[英]How to compare two MySql database

我必須比較兩個 MySql 數據庫數據,我想比較兩個 MySql 模式並找出兩個模式之間的區別。

我創建了兩個變量 Old_Release_DB 和 New_Release_DB。 在 Old_Release_DB 中,我存儲了舊版本架構,而不是經過一些修改,例如刪除了一些列、添加了一些列、重命名了一些列、更改了列屬性,如增加數據類型大小(例如:varchar(10) 到 varchar(50))。 然后它成為我存儲在 New_Release_DB 中的新版本模式。

現在我想要表名,在 New_Release_DB 中已更改的列名列表,並隨列名一起更改。

例子,

Table_A Column_Name Add(如果添加),Table_A Column_Name Delete(如果被刪除),Table_A Column_Name Change(如果它的屬性發生了變化)

我正在 Linux 的 Shell 腳本中嘗試它,但我沒有得到它。 請讓我知道我是否可以使用其他腳本,如 python 或 java。

看看mysqldiff

它還可以生成必要的 SQL 語句以從一種方案轉換為另一種方案(反之亦然)

上面鏈接中的文檔相當不錯。 入門非常簡單:

mysqldiff --server1=user@host1 --server2=user@host2 test:test

您可以通過創建數據庫轉儲來比較兩個數據庫: mysqldump -u your-database-user your-database-name > database-dump-file.sql - 如果您使用密碼連接到數據庫,還要添加 -p 選項到 mysqldump 命令。

然后將它們與 diff 進行比較: diff new-database-dump-file.sql old-database-dump-file.sql 或者,您可以通過將 > databases_diff 添加到上一個命令,將 diff 執行的結果保存到帶有 STDOUT 重定向的文件中.

但是,這種比較需要一些眼睛工作 - 您會從字面上看出兩個文件之間的差異。

我使用具有模式同步實用程序的 mysql Workbench。 嘗試將更改從開發服務器應用到生產服務器時非常方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM