收到此 mysqldiff 错误时下一步该怎么做?

收到此 mysqldiff 错误时下一步该怎么做?

我有一个 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.

来自mysqldiff 文档

指定数据库对时,一个数据库中的所有对象将与另一个数据库中的相应对象进行比较。任何未出现在任一数据库中的对象都会产生错误。

是否可以获取调试信息?
我需要做什么才能生成有用的差异报告?

注意:我正在跑步

  • mysql Ver 14.14 Distrib 5.5.43
  • Ubuntu Linux

答案1

mysqldiff只是告诉您,关于数据库名称,两个数据库之间存在差异:dev_si_brand_newprod_si

如果您不想mysqldiff在遇到第一个差异时停止并继续比较,只需将参数添加--force到命令行:

- 力量

不要在发现第一个差异时止步。处理所有对象以查找所有差异。

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

相关内容