|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!设置MySQL数据双向同步
1、筹办办事器
因为MySQL分歧版本之间的(二进制日记)binlog格局大概会纷歧样,因而最好的搭配组合是Master的MySQL版本和Slave的版原形同大概更低,Master的版本一定不克不及高于Slave版本。
more..|less..|本文中,我们假定主办事器(以下简称Master)和从办事器(以下简称Slave)的版本都是5.0.27,操纵体系是RedHatLinux9。
假定同步Master的主机名为:master(IP:192.168.1.123),Slave主机名为:slave(IP:192.168.1.124),2个MySQL的basedir目次都是/usr/local/mysql,datadir都是:/var/lib/mysql。
2、设置同步办事器
1、设置同步Master
修正my.cnf文件,在
#ReplicationMasterServer(default)
#binaryloggingisrequiredforreplication
增加以下内容:
[c-sharp]viewplaincopy
- #log-bin=/var/log/mysql/updatelog
- server-id=1
- binlog-do-db=discuz
- binlog-ignore-db=mysql
重启MySQL,创立一个MySQL帐号为同步公用
[c-sharp]viewplaincopy
- #/usr/local/mysql/bin/mysql-uroot-p
- mysql>GRANTREPLICATIONSLAVEON*.*TO[email=]back@%[/email]IDENTIFIEDBYback;
- 假如想要在Slave上有权限实行"LOADTABLEFROMMASTER"或"LOADDATAFROMMASTER"语句的话,必需授与全局的FILE和SELECT权限:
- mysql>GRANTFILE,SELECT,REPLICATIONSLAVEON*.*TO[email=]back@%[/email]IDENTIFIEDBYback;
- mysql>FLUSHPRIVILEGES;
2、设置同步Slave
修正my.cnf文件,增加
[c-sharp]viewplaincopy
- server-id=2
- master-host=192.168.1.123
- master-user=back
- master-password=back
- master-port=3306
- replicate-ignore-db=mysql
- replicate-do-db=discuz
重启MySQL
3、启动同步
在主办事器masterMySQL下令符下
[c-sharp]viewplaincopy
- #/usr/local/mysql/bin/mysql-uroot-p
- mysql>showmasterstatus;
显现(固然这个是我呆板的情形,你的不成能跟我一样哈,只是个例子):
+------------------+----------+-------------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+-------------------+------------------+
|mysql-bin.000009|98|discuz|mysql|
+------------------+----------+-------------------+------------------+
在从办事器masterMySQL下令符下
[c-sharp]viewplaincopy
- #/usr/local/mysql/bin/mysql-uroot-p
- mysql>slavestop;
- mysql>changemastertomaster_host=192.168.1.123,master_user=back,master_password=back,master_log_file=mysql-bin.000009,master_log_pos=98;
- mysql>slavestart;
用showslavestatus/G;看一下从办事器的同步情形
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
假如都是yes,那代表已在同步
往内外面写点数据测试一下看是不是同步乐成,假如不乐成,相对不是你的RP成绩,再反省一下操纵步调!
4、设置双向同步
修正slave办事器的my.cnf,增加
[c-sharp]viewplaincopy
- log-bin=/var/log/mysql/updatelog
- binlog-do-db=discuz
- binlog-ignore-db=mysql
重启MySQL,创立一个MySQL帐号为同步公用
[c-sharp]viewplaincopy
- mysql>GRANTREPLICATIONSLAVEON*.*TO[email=]back@%[/email]IDENTIFIEDBYback;
- mysql>GRANTFILE,SELECT,REPLICATIONSLAVEON*.*TO[email=]back@%[/email]IDENTIFIEDBYback;
- mysql>FLUSHPRIVILEGES;
修正master办事器的my.cnf,增加
[c-sharp]viewplaincopy
- master-host=192.168.1.124
- master-user=back
- master-password=back
- master-port=3306
- replicate-ignore-db=mysql
- replicate-do-db=discuz
重启MySQL
在主办事器slaveMySQL下令符下:
showmasterstatus;
+------------------+----------+-------------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+-------------------+------------------+
|mysql-bin.000013|98|discuz|mysql|
+------------------+----------+-------------------+------------------+
在办事器AMySQL下令符下:
[c-sharp]viewplaincopy
- mysql>slavestop;
- mysql>changemastertomaster_host=192.168.1.124,master_user=back,master_password=back,master_log_file=mysql-bin.000013,master_log_pos=98;
- mysql>slavestart;
注重:关于要复制多个数据库时,binlog-do-db和replicate-do-db选项的设置,网上良多人说是用半角逗号分开,经由测试,如许的说法是毛病的,MySQL官方文档也明白指出,假如要备份多个数据库,只需反复设置响应选项就能够了。
好比:
binlog-do-db=a
binlog-do-db=b
replicate-do-db=a
replicate-do-db=b
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|