两个主机都装上了 PHP+Mysql 使Mysql数据同步

  次阅读 作者:智能小宝 来源:互联网 2016-01-27 15:49 我要评论(0)

先假设有主机 A 和 B ( Linux 系统),主机 A 的 IP 分别是 1.2.3.4 (当然,也可以是动态的),主机 B 的 IP 是 5.6.7.8 。两个主机都装上了 PHP+Mysql ,现在操作的是主机 A 上的资料,如果另外一个主机 B 想跟 A 的资料进行同步,应该怎么做呢?

OK,我们现在就动手。

首先,如果要想两个主机间的资料同步,一种方法就是主机 A 往主机 B 送资料,另外一种主法就是主机 B 到主机 A 上拿资料,因为 A 的 IP 是动态的(假设),所以我们就得从主机 A 往主机 B 送资料。

在主机 B 上创建一个 Mysql 账户。

# GRANT ALL ON test.* TO user@% IDENTIFIED BY "password"; //创建用户 user,可以从任何机器访问到主机 B 上的 test 数据库

如果这里显示错误,先把 % 改为一个 IP ,然后再利用 phpMyAdmin 把 IP 改为 % ,测试无误后就可以写 php 程序。

<?

$link=mysql_pconnect("localhost","user","password");

mysql_pconnect("localhost","user","password"); //连接本机(主机A)的数据库

mysql_select_db("test"); //选择数据库test

$re=mysql_query("select * from table order by id desc");

$num=mysql_numrows($re);

if (!empty($num)) {

$id=mysql_result($re,0,"id"); //获得本机table表的最大ID

}

mysql_close($link); //关闭与本机数据库的连接

$link=mysql_pconnect("5.6.7.8","test","test");

mysql_pconnect("5.6.7.8","test","test"); //连接主机B的数据库

mysql_select_db("test"); //选择数据库test,此数据库应该与主机A上test数据库的结构一样。

$re=mysql_query("select * from table order by id desc");

$num=mysql_numrows($re);

if (!empty($num)) {

$remote_id=mysql_result($re,0,"id"); //获得主机Btable表的最大ID

}

if ($id>$remote_id) {

$result_id=$id-$remote_id; //如果主机A中table的最大ID大于主机B中table表的最大ID,说明两个

} 的资料不同

mysql_close($link); //关闭主机B的数据库连接

$link=mysql_pconnect("localhost","user","password");

mysql_pconnect("localhost","user","password");

mysql_select_db("test");

if (empty($result_id)) $result_id=0;

if (empty($remote_id)) $remote_id=0; //如果主机B中的table的最大ID为空(里面没有资料),那么就等0

$re=mysql_query("select * from table limit $remote_id,$result_id"); //取出主机A中table表与主机B中table表里不同的资料

$num=mysql_numrows($re);

if (!empty($num)) {

for ($i=0;$i<$num;$i++) {

$test[$i]=mysql_result($re,$i,"test"); //把不同的资料放入一个数组里

}

}

mysql_close($link); //关闭主机A的数据库连接

$link=mysql_pconnect("5.6.7.8","user","password");

mysql_pconnect("5.6.7.8","user","pasword");

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...