MySQL 数据同步 主主设置(互为主备) 两台MySQL主机做为服务器: master-1:192.168.220.128 master-2:192.168.220.131 一、创建并授权用户 这一步在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库。 在master-1上: 创建一个充许master-2来访问的用户user,密码为:pass GRANT REPLICATION SLAVE ON *.* TO 'user'@'192.168.220.131' IDENTIFIED BY 'pass'; 在master-2上: 创建一个充许master-1来访问的用户user,密码为:pass, GRANT REPLICATION SLAVE ON *.* TO 'user'@'192.168.220.128' IDENTIFIED BY 'pass'; 备注:为了操作方便,我们在两台服务器上,指定的访问权限时,设定的用户名和密码,一摸一样 二、修改主配置文件 在MySQL的主配置文件中修改/ect/my.cnf添加如下内容: master-1上: 57行 Server-id = 1 49行 log-bin=mysql-bin 要同步的数据库 Replicate-do-db=test auto-increment-increment = 2 重启mysql auto-increment-offset = 1 95行(指定从库id) server-id=2 log-bin=mysql-bin 113行(开启从库复制机制) master-2上: Server-id = 2 94行 log-bin=mysql-bin 112行 Replicate-do-db=test 要同步的数据库 auto-increment-increment = 2 auto-increment-offset = 2 server-id=1 95行(指定从库id) log-bin=mysql-bin 113行(开启从库复制机制)
注:二都只有server-id不同和 auto-increment- offset不同
auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突。
另:auto-increment-increment控制列中的值的增量值。 三、获取两台服务器的二进制日志名和偏移量 在master-1上:
mysql> show master status;
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000006 | 107 | | | +------------------+----------+--------------+------------------+ 1 row in set 在master-2上:
mysql> show master status;
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000008 | 107 | | | +------------------+----------+--------------+------------------+ 1 row in set
四、两台服务器互相做相应设置 在master-1上: mysql>stop slave; mysql>
CHANGE MASTER TO
MASTER_HOST='192.168.220.131', MASTER_USER='user',
MASTER_PASSWORD='pass',
MASTER_LOG_FILE='mysql-bin.000008', MASTER_LOG_POS=107; 在master-2上: mysql>stop slave; mysql>
CHANGE MASTER TO
MASTER_HOST='192.168.220.128', MASTER_USER='user',
MASTER_PASSWORD='pass',
MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=107;
五、启动slave线程
在两台主机上分别执行 mysql> START SLAVE;
六、查看slave状态
mysql> show slave status\\G;
Slave_IO_Running: Yes Slave_SQL_Running: Yes
注意:如果都为Yes,就是配置成功了,有时候创建数据的时候会报错,那么就要从新手动更新一下日志文件,和偏移量,保持两个数据库同步。
配置到此完成!
接下来,可以在两台服务器上,随意操作数据库。就能看到明显的效果。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库MySQL - 数据同步 - 主主设置(互为主备)在线全文阅读。
相关推荐: