我的主要办公室有一个 mysql 数据库和 4 个用于事件和收集客户数据的异地服务器。当我将服务器带回总部时,我需要将所有数据从异地数据库发送到主数据库而不覆盖现有数据,以便我可以清除远程数据库并将其新鲜发送到下一个事件。
我查看了 mysqldump,它总是丢弃所有以前的数据,这将是非常糟糕的。
如果有人可以帮助我指出正确的方向,将不胜感激。
注意:场外服务器在活动中没有互联网连接,场外服务器在办公室时没有连接到局域网。
最终,我试图弄清楚如何做到这一点,以便我可以将其放入脚本中。
我的主要办公室有一个 mysql 数据库和 4 个用于事件和收集客户数据的异地服务器。当我将服务器带回总部时,我需要将所有数据从异地数据库发送到主数据库而不覆盖现有数据,以便我可以清除远程数据库并将其新鲜发送到下一个事件。
我查看了 mysqldump,它总是丢弃所有以前的数据,这将是非常糟糕的。
如果有人可以帮助我指出正确的方向,将不胜感激。
注意:场外服务器在活动中没有互联网连接,场外服务器在办公室时没有连接到局域网。
最终,我试图弄清楚如何做到这一点,以便我可以将其放入脚本中。
您可以在命令行中配置与 drop 或 replace/insert 相关的 mysqldump 的行为。
尝试
mysqldump --help
您也可以使用INSERT SELECT
您还可以使用 SELECT CONCAT(创建 CSV)和LOAD DATA来导入 CSV 语句。
我会用一个小程序(可能是用 Java 编写的)来做这种操作,它从临时数据库中读取数据并将其插入到主数据库中,因为它可以让我完全控制复制的内容和不复制的内容。
如果您想为此使用 mysqldump,那么我认为以下应该有效:
运行INSERT INTO ... SELECT从临时数据库到主数据库:
INSERT INTO primary_db.customer (name,address) SELECT name, address FROM temporary_db.customer