我有一个 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
- Ubuntu Linux
答案1
mysqldiff
只是告诉您,关于数据库名称,两个数据库之间存在差异:dev_si_brand_new
与prod_si
。
如果您不想mysqldiff
在遇到第一个差异时停止并继续比较,只需将参数添加--force
到命令行:
- 力量
不要在发现第一个差异时止步。处理所有对象以查找所有差异。
mysqldiff --force --server1=root@localhost dev_si_brand_new:prod_si