/ diff

比较两个mysql数据库表结构的差异

需求来源:一个线上系统,一个开发系统,现在要把开发系统更新到线上,但是开发系统的数据库结构与线上的略有差异,所以需要找出两个数据库的表结构差异。

注:操作均在Linux系统下完成

1.导出两个数据库的表结构

cd mysql/bin ./mysqldump -uroot -p -d DB1>/home/leo/db1.sql ./mysqldump -uroot -p -d DB2>/home/leo/db2.sql

mysqldump的-d参数意思是只要导出结构,不需要导出数据。

2.比较

cd /home/leo diff db1.sql db2.sql>diff

利用diff命令把两个sql文件的差异处找出来,但是还是会有一些信息是无用的,例如AUTO_INCREMENT的值,所以要把这些信息剔除

cd /home/leo sed -i 's/AUTO_INCREMENT=[0-9]{1,}//' db1.sql sed -i 's/AUTO_INCREMENT=[0-9]{1,}//' db2.sql diff db1.sql db2.sql>diff

比较两个mysql数据库表结构的差异
Share this