gpt4 book ai didi

mysql - 如何合并使用转储文件创建的同一表的不同版本

转载 作者:行者123 更新时间:2023-11-29 09:02:10 26 4
gpt4 key购买 nike

我在两台不同的计算机上使用相同的数据库,并且需要使它们保持同步。

当我在一台计算机上完成工作时,我会创建一个数据库转储文件,以便我可以使用指令将其导入另一台计算机:

mysqldump -u username -p DataBaseName TableName > Table.dump

我的问题是,当我在某些表中插入元素时,它们的主键可能已经分配给我的另一台计算机上数据库的同一表的元素。

我想知道如何插入我在问题 How can I merge two MySQL tables? 中找到的说明在我创建的转储文件中,以便为重复条目分配新的主键值,而不会丢失表的数据。

我想避免创建转储文件的行为,这将完全删除感兴趣表的先前版本,如下引用:

DROP TABLE IF EXISTS `TableName`;
CREATE TABLE `TableName` (
...
) ENGINE=MyISAM AUTO_INCREMENT=6512 DEFAULT CHARSET=utf8;

最佳答案

作为替代方案,您可以使用 MySQL 的增量和偏移设置,这些设置通常用于自动主到主复制,其中数据无需执行 mysqldump 即可同步。或者,如果适合您的情况,您实际上可以设置主到主复制。

在服务器 A 上,使用以下设置:

auto-increment-offset=1
auto-increment-increment=2

在服务器 B 上,使用以下设置:

auto-increment-offset=2
auto-increment-increment=2

以下是一份描述主到主复制设置的指南:Dual-Master MySQL 5 Replication Done Right .

关于mysql - 如何合并使用转储文件创建的同一表的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com