作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在两台不同的计算机上使用相同的数据库,并且需要使它们保持同步。
当我在一台计算机上完成工作时,我会创建一个数据库转储文件,以便我可以使用指令将其导入另一台计算机:
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/
我正在为我的应用程序使用 Tank-Auth。我唯一的问题是激活和重置帐户密码。 用于登录、注册、注销;我对这些代码没有问题; $route['login'] = "/auth/login"; $ro
我是一名优秀的程序员,十分优秀!