环境:CentOS 6.5 64位,Mysql5.7.26
服务器A:192.168.214.43
服务器B:192.168.214.42
1、两台服务器都各自安装mysql,并可以成功启动,步骤此处略。
2、建立同步用户,并赋予replication slave权限:
服务器A:
mysql> grant replication slave on *.* to zzbf@’192.168.214.42′ identified by ‘123456’;
mysql> flush privileges;
服务器B:
mysql> grant replication slave on *.* to zzbf@’192.168.214.43′ identified by ‘123456’;
mysql> flush privileges;
3、修改配置文件:/etc/my.cnf:
服务器A:
# vi /etc/my.cnf 在 [mysqld] 下加入以下内容:
server-id=1 #默认为1,不可与机器B的值相同;
log-bin=mysql-bin #启用二进制日志,名字可自定义;
binlog-do-db=table_lyp #需要同步二进制日志的数据库;
binlog-ignore-db=mysql #不需要同步二进制日志的数据库,若有多个,可用逗号隔开;
replicate-do-db=table_lyp #需要复制的数据库;
replicate-ignore-db=mysql #不需要复制的数据库,若有多个,可用逗号隔开;
log-slave-updates #从服务器的更新是否需要写入二进制日志;
sync_binlog=1 #binlog每一次写入都与硬盘同步(最安全,但最慢);
auto_increment_offset=1 #自增长字段自动增长的起始值;
auto_increment_increment=2 #自增长字段每次增加的量。
服务器B:
server-id=2
log-bin=mysql-bin
binlog-do-db=table_lyp
binlog-ignore-db=mysql
replicate-do-db=table_lyp
replicate-ignore-db=mysql
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
4、两台服务器分别重启mysql服务:
# /etc/init.d/mysqld restart
5、分别在A、B两台服务器查看作为主服务器的状态:
服务器A:
mysql> flush tables with read lock; #这里锁表是为了不让新的数据进来,让服务器定位同步位置,初次同步完成后,记得解锁。
mysql> show master status \G; #注意显示的信息中红色标注的部分,等会儿change master会用到。
mysql> unlock tables; #解表

服务器B:做同样的操作,具体语句和服务器A一样,此处略。

6、登入mysql,并用change master语句指定同步服务器信息,并启动slave线程:
服务器A:
mysql> change master to master_host=’192.168.214.42′,master_user=’zzbf’,master_password=’123456′, master_log_file=’mysql-bin.000003′,master_log_pos=1085731;
mysql> start slave;
# A服务器master_log_file信息,需填入对方的File值,即B服务器show master status结果中的File值;
# A服务器master_log_pos信息,填入对方的Position值,即B服务器show master status结果中的Position值。
# mysql5.x 以上版本已经不支持在配置文件中指定主服务器相关选项。
服务器B:
mysql> change master to master_host=’192.168.214.42′,master_user=’zzbf’,master_password=’123456′, master_log_file=’mysql-bin.000001′,master_log_pos=1085731;
mysql> start slave;
7、在A、B服务器上分别查看从服务器状态:
服务器A:
mysql> show slave status \G

服务器B:
mysql> show slave status \G

8、测试:
在A服务器的table_lyp库中新建表,并插入数据,在服务器B中可以有显示,反之亦然,配置OK!