我正在从一台 MySQL 服务器 (5.0.95) 迁移到新的 MySQL 服务器 (5.1.73)。我有一个脚本正在传输架构并CHECKSUM TABLE schema.table;
在源服务器和目标服务器上使用表校验和。我的测试模式上的这个过程可以验证我的 930 个表中的 90 个以外的所有表。对于那些 90 后,我怎样才能找出差异是什么?
我已经尝试使用 mysqldump 将它们(源和目标)都保存下来,并对生成的 sql 文件使用 Beyond Compare。这并不顺利,因为 Beyond Compare 会在它选择的地方拆分插入行,然后在它所做的地方找到差异。有没有我可以使用的工具或其他 MySQL 检查来找出表不相同的原因?
由于公司政策,我必须使用 RHEL 6,这就是旧服务器消失的原因,因为它在 RHEL 5 上并且不支持 RHEL 6。
MySQL 实用程序 mysqldbcompare ( https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysqldbcompare.html ) 可能会有帮助。它确实提供了在比较两个 MySQL 服务器上的对象(不仅仅是表)时发现的任何不匹配的详细信息。
分解插入物。
或者
确保顺序相同,从而帮助差异程序。(这假定您有一个
PRIMARY
或UNIQUE
键。)CHECKSUM TABLE不保证 MySQL 版本之间的校验和相同,它始终作为文档中对此功能的通知出现
在转储上使用文本差异工具 - 它也不是最佳选择,
第一次和快速测试(非常快速地了解特征搜索的方向):
比,可能: