Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使多个mysql数据库中的行保持同步?最好有条理_Php_Mysql_Database Design_Ubuntu_Doctrine - Fatal编程技术网

Php 如何使多个mysql数据库中的行保持同步?最好有条理

Php 如何使多个mysql数据库中的行保持同步?最好有条理,php,mysql,database-design,ubuntu,doctrine,Php,Mysql,Database Design,Ubuntu,Doctrine,如果有的话,保持一行到不同数据库(可能在不同的机器上)同步的好方法是什么 为了清楚起见。我有多个mysql数据库,它们使用相同的模式共享一个用户表。有一个“主”数据库,它有自己独特的模式,但包含包含所有用户记录的用户表。然后有多个“从”数据库,它们大部分共享相同的模式,其中还包含用户表(具有相同的模式),其中存储了用户记录的子集 当对任何数据库中的用户记录的实例进行更新时,我希望将该更改传播到它所在的所有数据库中该用户记录的所有实例 我正在使用mysql、php5.3和doctrine 1.2.

如果有的话,保持一行到不同数据库(可能在不同的机器上)同步的好方法是什么

为了清楚起见。我有多个mysql数据库,它们使用相同的模式共享一个用户表。有一个“主”数据库,它有自己独特的模式,但包含包含所有用户记录的用户表。然后有多个“从”数据库,它们大部分共享相同的模式,其中还包含用户表(具有相同的模式),其中存储了用户记录的子集

当对任何数据库中的用户记录的实例进行更新时,我希望将该更改传播到它所在的所有数据库中该用户记录的所有实例


我正在使用mysql、php5.3和doctrine 1.2.x作为orm,运行在ubuntu VPS服务器上。

不要尝试使用PHP或doctrine来实现这一点:确保从数据库表与主数据库表保持同步。

听起来像是在寻找,具体来说,将从属数据库限制为只关心来自主数据库的特定表的配置选项。

这是否允许我直接写入从属数据库并将其传播到主数据库?vice vera呢?这样做需要所谓的多主机复制循环。服务器A是服务器B的主服务器,服务器B是服务器C的主服务器,服务器C是服务器A的主服务器。它可以扩展到整个字母表的其余部分,但管理和维护起来可能会很挑剔。仍然看起来相当准确,并涵盖了autoincrement的棘手问题。要清楚,我的雇主在生产中使用multi-master来保持本地应用程序与另一个站点的版本同步。在过去的2-3年中,MySQL经常破坏二进制日志,这需要一些主要的手动重建工作。虽然多主机是可能的,但除非您有全职监控,否则您可能会陷入痛苦的世界。现在,复制错误每2-3个月发生一次,随机出现的不合逻辑和不可复制的SQL错误会停止循环。我不确定这是我们的错,是OpenVPN的错,还是MySQL的错。这听起来不像是我们愿意走的路。至于直接的
replicate do table
我在这个问题上做了一些简单的介绍,我不完全清楚将整个
user
表从主表复制到从表如何工作。我弄错了吗?