新技术论坛
搜索
查看: 1125|回复: 0
打印 上一主题 下一主题

[SQL/Oracle] MySQL双向复制简单配置步骤

[复制链接]
  • TA的每日心情
    开心
    2016-12-9 18:18
  • 签到天数: 85 天

    连续签到: 1 天

    [LV.6]常住居民II

    扫一扫,手机访问本帖
    楼主
    跳转到指定楼层
    发表于 2016-3-20 11:45:12 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    MySQL从3.23版本起就已经内置了复制(Replication)的功能,我们可以配置成master-slave模式,也可以配置为master-master模式。方法很简单,这里就master-master的配置简单的记录下来,我这里测试环境是mysql 5.1.31,一个是自己用源代码编译的,一个是用的xampp1.7里自带的。

    首先找到两个版本相同的数据库服务器,最好是版本相同,或者差别太大(一个是3.x,一个是5.x,那估计没戏)。假设数据库的配置文件是/etc/my.cnf,我们假定A机的IP地址是192.168.0.1,B机的IP地址是192.168.0.2



    我们在A机上给出一个授权用户,允许B机的某个账号拥有来获取要复制数据库的权利,这里假设针对所有的数据库都有复制的权利

    mysql>grant file,replication slave on *.* to replicate@192.168.0.2 identified by ‘password’;

    这样我们就创建了一个replicate的账号,密码是password。同样的方法在B机上也给A机一个授权

    mysql>grant file,replication slave on *.* to replicate@192.168.0.1 identified by ‘password’;

    接下来就是要修改配置文件了,首先打开A机的/etc/my.cnf文件,在[mysqld]一段里,增加或者修改下面这些变量

    server-id=1
    log-bin=mysql-bin

    master-host=192.168.0.2
    master-user=replicate
    master-password=password

    保存退出。
    同样的方法在B机上也做一遍,类似如下:

    server-id=2
    log-bin=mysql-bin

    master-host=192.168.0.1
    master-user=replicate
    master-password=password

    要注意,server-id千万别冲突了,当然,如果冲突了,数据库启动的时候会有报错的。

    做完配置修改后,在重启数据库之前,我们还有做一件事请,那就是原始数据的同步,首先停止数据库,然后用A机的数据库全部覆盖B机的数据库(反之也行),总之,在重启之前,保证你需要同步的数据库应该是一致的(怎么说也得在同一个起跑线上嘛)。

    好了,现在你可以重启你的数据库了。

    你可以通过show master status; show slave status这样的SQL语句来查看对应的状态了。
    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    手机版|Archiver|开发者俱乐部 ( ICP/ISP证:辽B-2-4-20110106号 IDC证:辽B-1-2-20070003号 )

    GMT+8, 2025-1-9 07:33 , Processed in 0.219309 second(s), 19 queries .

    X+ Open Developer Network (xodn.com)

    © 2009-2017 沈阳讯网网络科技有限公司

    快速回复 返回顶部 返回列表