0
我有两个数据库位于不同服务器上,需要保持同步。这两个数据库都在我的数据库配置定义,我建立连接这样:我怎样才能在$ DB1的“产品”表的全部内容,并在$ DB2同步Codeigniter - 将mysql表同步到不同服务器上的不同数据库
$DB1 = $this->load->database('master', TRUE);
$DB2 = $this->load->database('live', TRUE);
- 我可以只需截断$ DB2上的表并编写完整的数据(不雅,并可能导致活动站点上的问题),或者我可以使用codeigniter正确地同步第二个表;根据记录添加,更新和删除记录中的记录?
我曾尝试:
$products = $DB1->from('products')->get()->result_array();
$count = count($products);
for($i = 0 ; $i < $count; $i++)
{
$q = $DB2->from('products')->where('id', $products[$i]['id'])->get();
if($q->num_rows() > 0)
{
[Update the data]
}
else
{
[Insert the data]
}
}
但是这种方法没有考虑到其中存在于已经从$ DB1删除$ DB2账户记录?我更喜欢这种更新产品的方法,但不能在实况网站上使用丧偶产品。
为什么不建立一个mysql复制?如果你有权访问配置文件。这更好地解决了所有问题。 – GhostGambler
不幸的是,整个系统包括用户在实时数据库上工作,以及管理员在主服务器上工作 - 日常数据将每天与主服务器同步一次,然后在主服务器上输入更改,然后重新同步其他数据办法。 – RayZor
你有没有看过Master-Master-Replications? – GhostGambler