3

我有一个带有可以编辑的数据库副本的开发服务器和一个具有相同数据库处于不同状态的实时真实服务器。要将数据库从开发移动到实时,我从开发服务器运行:

mysqldump -u root -p --opt db_name tbl_name | mysql -u user_name -p --host=live_IP -C db_name

使用 db_name、tbl_name、user_name 和 live_IP 中的适当值。但是,这目前会删除实时服务器上的表并复制开发版本 - 有效地覆盖所有内容并丢弃实时表中的任何新数据。我真正想要的是在开发服务器中有新行,而冲突的行来自开发服务器的副本,但实时服务器副本中的任何新行都保持不变。这是某种合并,我无法在文档中找到类似的内容,但它似乎应该是可能的,因为它是一种常见的需求。

4

1 回答 1

6

您可以通过在管道之前添加mysqldump 选项来做到这一点。在您的情况下,我认为您需要--insert-ignore、--no-create-db 和--no-create-info。

于 2012-11-14T20:08:04.873 回答