在命令行上使用免费工具比较两个MySQL数据库

Ced*_*ric 11 mysql sql diff

我想生成类似于diff的SQL文件来比较两个MySQL数据库的DATA和STRUCTURE.

这些生成的文件将在命令行上作为SQL查询执行.

在SO和各种论坛上有各种相关的旧线程,但它们处理的是带有用户界面的非免费工具(不是命令行工具).

此外,不应直接同步数据库,而只能通过执行生成的diff SQL脚本来同步.

ADW*_*ADW 13

以下将向您展示差异(问题的第一部分),但输出实际上不能用作补丁文件.

要比较两个表:

 mysql -u whatever -e "describe table" database1 > file1.txt
 mysql -u whatever -e "describe table" database2 > file2.txt
 diff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)

要比较数据:

 mysql -u whatever -e "select * from table" database1 > file1.txt
 mysql -u whatever -e "select * from table" database2 > file2.txt
 diff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)

要比较数据库:

 mysqldump --extended-insert=FALSE -u whatever database1 > file1.txt
 mysqldump --extended-insert=FALSE -u whatever database2 > file2.txt
 diff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)