我想生成类似 diff 的 SQL 文件来比较两个 MySQL 数据库的 DATA 和 STRUCTURE。
这些生成的文件将作为 SQL 查询在命令行上执行。
在 SO 和各种论坛上有各种相关的旧线程,但它们处理带有用户界面的非免费工具(不是命令行工具)。
此外,不应直接同步数据库,而只能通过执行生成的 diff SQL 脚本来同步。
最佳答案
以下内容将向您展示差异(问题的第一部分),但输出实际上不能用作补丁文件。
比较两个表:
mysql -u whatever -e "describe table" database1 > file1.txt
mysql -u whatever -e "describe table" database2 > file2.txt
diff file1.txt file2.txt
比较数据:
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
比较数据库:
mysqldump --extended-insert=FALSE -u whatever database1 > file1.txt
mysqldump --extended-insert=FALSE -u whatever database2 > file2.txt
diff file1.txt file2.txt
关于mysql - 使用免费工具在命令行上比较两个 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679399/