上篇文章介绍了关于MySQL如何配置主从复制,本篇主要说一下主主复制:
先对文章将要出现的关键词做一下说明:
server1、server2、server...表示数据库服务器
(写的比较懒,用心体会)
mysql主主复制配置
server1 ip:192.168.0.231
server2 ip:192.168.0.234
更改两台主机的mysql配置文件
vim /etc/my.cnf
server1添加
server-id=1
log-bin=mysqlmaster-bin.log
auto-increment-increment=2
auto-increment-offset=1
server2添加
server-id=2
log-bin=mysqlmaster-bin.log
auto-increment-increment=2
auto-increment-offset=2
说明:auto-increment-increment的值设为整个结构中服务器的总数,此实验为两台服务器,所以值为2
auto-increment-offset是用来设定数据库中自动增长的起点的,因为服务器都设定了一次自动增长的值为2,所以他们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
另可以设置replicate-do-db=database-name指定需要同步的数据库
重启mysql服务使配置生效
登陆mysql
添加同步数据所需要的用户
server1上
mysql>GRANT REPLICATION SLAVE ON *.* TO 'systop1'@'192.168.0.%' IDENTIFIED BY 'systop';
server2上
GRANT REPLICATION SLAVE ON *.* TO 'systop2'@'192.168.0.%' IDENTIFIED BY 'systop';
查看两台服务器的master状态
server1
SHOW MASTER STATUS;
+------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------------+----------+--------------+------------------+-------------------+
| mysqlmaster-bin.000002 | 120 | | | |
server2
show master status;
+------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------------+----------+--------------+------------------+-------------------+
| mysqlmaster-bin.000001 | 336 | | | |
说明二进制日志路径
server2上执行
CHANGE MASTER TO MASTER_HOST='192.168.0.231',MASTER_USER='systop1',MASTER_PASSWORD='systop',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=120;
server1上执行
CHANGE MASTER TO MASTER_HOST='192.168.0.234',MASTER_USER='systop2',MASTER_PASSWORD='systop',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=336;
开启复制功能
两台机器都执行
start slave;
查看复制连接状态
执行
show slave status \G;
查看Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都显示yes表示启动正常
测试:两台服务器都做数据更新操作,查看数据是否更新
老铁们,互相关注交流啊!
作者介绍:半路学IT,做开发3年,先就职在一家共享单车公司,做后台开发!
我开了一个公众号,欢迎各位有志同道合朋友,关注!不定期分享干活,和我得故事!