我有两个MySQL数据库:一个用于测试,一个用于生产。它们位于不同的服务器上。这些表应该相同,但是一个表比另一个表多一行。我怎么能找到这一行?
答案 0 :(得分:2)
你可以尝试:
然后运行
SELECT t1.* FROM table1 t1
LEFT JOIN table2 t2
ON t1.id = t2.id
WHERE t2.id IS NULL
答案 1 :(得分:2)
pt-table-sync --print h=server1,D=dbname,t=tablename h=server2
请参阅http://www.percona.com/doc/percona-toolkit/2.0/pt-table-sync.html
答案 2 :(得分:2)
一种方法是将每个表导出到sql文件并使用diff程序查找差异。
漂亮差异(网络) - http://prettydiff.com/
WinMerge(胜利) - http://winmerge.org/
FileMerge(OS X) - http://en.wikipedia.org/wiki/Apple_Developer_Tools#FileMerge
答案 3 :(得分:0)
答案 4 :(得分:0)
我有时做过的一个技巧(你需要访问这两个表):
显然,如果表格很大,你必须要小心。