MySQL双向复制简单配置步骤

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语句来查看对应的状态了。

觉得文章有用?立即: 和朋友一起 共学习 共进步!

猜您喜欢

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>