2012-01-23 42 views
0

我有两个MySQL数据库:一个用于测试,另一个用于生产。他们在不同的服务器上。这些表格应该是相同的,但是一个表格比另一个表格多一行。我将如何找到这一行?查找应该相同的两个MySQL表中的差异

+0

他们是在同一台服务器上? –

+0

这两个数据库位于不同的机器上。 – David542

+0

那么,你有什么尝试? –

回答

2

你可以尝试:

    在SQL文件
  1. 出口第二服务器表(用mysqldump)
  2. 编辑文件更改表名
  3. 导入SQL文件到第一台服务器

然后运行

SELECT t1.* FROM table1 t1 
LEFT JOIN table2 t2 
    ON t1.id = t2.id 
WHERE t2.id IS NULL 
+2

这实际上并不适用。仅仅因为一个表格比另一个表格多一行并不意味着它有所有的行加上一行。有可能我们可能有以下几点:第一个表有ABCDEF行,第二个表有ACDEFGH。如果行计数存在差异,则还应该怀疑行内容存在差异,因此具有相同ID的某些行可能在其他列中具有不同的数据。你需要使用像pt-table-sync这样的工具来获得好的结果。 –

0

一招我有时做了(你需要同时访问表):从服务器B一个

  • 链接表从服务器

    1. 开放存取或类似
    2. 链接表在Access
    3. 计算差异

    显然,你如果表是大要小心。