时间:2021-07-01 10:21:17 帮助过:21人阅读
MySQL从3.23版本起就已经内置了复制(Replication)的功能,我们可以配置成master-slave模式,也可以配置为master-master模式。方法
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语句来查看对应的状态了。
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
本文链接: