Php 存在相同id的数据时的Mysql数据库复制

Php 存在相同id的数据时的Mysql数据库复制,php,mysql,cakephp-2.0,mysqldump,mysql-error-1064,Php,Mysql,Cakephp 2.0,Mysqldump,Mysql Error 1064,当同一个表上存在具有相同id的数据时,是否可以复制数据库 即当我的本地系统(xampp mysql)上的数据库发生一些变化时,当互联网关闭时,也会在实时数据库中插入新数据。如何在不丢失数据的情况下同步两个数据库(在两个数据库中插入具有相同主键的记录时) 我试图做的是复制两个数据库。一个在xampp localhost上,另一个在我的live server上。本地PC可能不会一直连接到internet,因为该位置的internet连接有时会中断。所以我需要做的是在互联网恢复时同步这两个数据库。在此

当同一个表上存在具有相同id的数据时,是否可以复制数据库

即当我的本地系统(xampp mysql)上的数据库发生一些变化时,当互联网关闭时,也会在实时数据库中插入新数据。如何在不丢失数据的情况下同步两个数据库(在两个数据库中插入具有相同主键的记录时)

我试图做的是复制两个数据库。一个在xampp localhost上,另一个在我的live server上。本地PC可能不会一直连接到internet,因为该位置的internet连接有时会中断。所以我需要做的是在互联网恢复时同步这两个数据库。在此之前,客户端可以对本地数据库进行更改,而该特定客户端的客户可以对实时数据库进行更改

那么,我可以使用任何MYSQL功能来实现这一点吗


我可以用php来做吗?如果是,我们是否可以在数据库中比较和执行Update、Insert和Delete?

否,这是不可能做到的,这是“分裂大脑”集群中的一个典型问题,而这正是您实际拥有的(id列的全部要点是唯一地识别一行)

如果列是自动递增的,那么mysql可以解决这种多主机设置的问题:

  • 在配置文件(linux上为/etc/mysql/my.cnf)中,在两个 服务器到2
  • 然后找到最大的当前id值
  • 将一台服务器上的自动增量偏移设置为大于此值的值 在另一台服务器上,将其设置为该值+1
  • 重新启动两个数据库
  • 在此之后,两个数据库上的自动增量id值将相互“跳跃”,因此在复制时不会发生冲突


    请参见

    谢谢。我会检查这个,我做了很多研究,但错过了这个。我不是复制专家,这对我帮助很大。再谢谢你一个问题?我们可以为单个数据库设置此选项吗?我的意思是我有一个拥有30个域的云VPS。所以我需要为一个数据库设置这个变量?