还有一个微不足道的问题,抱歉,如果已经回答了,但我找不到了。我有一个大型科学数据库,有时由我们大学内部更新。有时我们希望将其与在线服务器同步,以使新数据可供所有人使用。所以我在做一些愚蠢的事情,即删除所有表然后
mysql -u username -p database_name < file.sql
我觉得这样不好,同步数据库的常见做法是什么(可能不需要全量导入,只需要差异)。
最佳答案
mysqldbcompare 将为您完成这项工作。在您的描述中,我假设您的公共(public)数据库与内部数据库之间的唯一区别是存储在内部数据库中的新数据。没有架构和旧数据更改。
假设 server1 是内部数据库,server2 是您的公共(public)数据库。
mysqldbcompare --server1=user1:password1@in-house \
--server2=user2:password2@public db1:db2 --changes-for=server2 -a \
--difftype=sql > sqldiff.sql
然后您可以使用命令将差异导入您的公共(public)数据库:
mysql -u username -p password db_name < sqldiff.sql
关于mysql - 上传/导入大型sql数据库(仅区别)mysql/linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28309030/