环境

NAMEIP
Master172.16.0.14
Slave172.16.0.19
全部机器关闭selinux和防火墙
系统时间需要同步
master和slave的数据库版本保持一致(系统版本保持一致)

配置主从复制

--在Master 上修改配置文件
[root@master /]# vim /etc/my.cnf
log-bin=mysql-bin
server-id = 1

--在Slave 上修改配置文件
[root@slave /]# vim /etc/my.cnf
log-bin=mysql-bin
server-id = 2
relay-log=/data/DB/relay.log
--参数解释
server-id=1       #设置server-id为1, Master和Slave的server-id不能一样
log-bin=mysql-bin #开启binlog日志

重启 Mysql

--在Master 和Slave 上重启Mysql
systemctl restart mysqld
systemctl restart mysqld

配置主从复制

--在Master 上创建授权用户
mysql> grant replication slave on *.* to 'slave'@'172.16.0.19' identified by '123456';

--在Master 查看binglog信息
mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 2758
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
--在Slave 上配置同步信息
mysql> change master to master_host='172.16.0.14', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=2758;

--参数解释
master_host=      #Master IP
master_user=      #同步用户
master_password=  #密码
master_port=    #Mysql 端口
master_log_file=  #Master上面查看到的二进制日志名
master_log_pos=   #Master上面查看到的POS值
mysql> start slave;  #启动主从复制
mysql> show slave status \G   #显示下面的状态则正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

配置双主模式

--配置双主模式只需要反向再进行部署一次即可
--在Slave 上创建授权用户
mysql> grant replication slave on *.* to 'slave'@'172.16.0.14' identified by '123456';

--查看binglog信息
mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 329
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
--在Master上配置同步信息
mysql> change master to master_host='172.16.0.19', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=329;

验证双主模式

--创建数据库
mysql> create database db;
mysql> use db;

--在Master 上插入数据
mysql> insert into db values(1,'END',123456);

--在Slave 上查看数据是否同步
mysql> select * from db;
+------+------+--------+
| id   | name | passwd |
+------+------+--------+
|    1 | END  | 123456 |
+------+------+--------+
1 row in set (0.00 sec)
--在Slave 上插入数据
mysql> use db;
mysql> insert into db values(2,'TOM',123456);

--在Master 上查看数据是否同步
mysql> select * from db;
+------+------+--------+
| id   | name | passwd |
+------+------+--------+
|    1 | END  | 123456 |
|    2 | TOM  | 123456 |
+------+------+--------+
2 rows in set (0.00 sec)
最后修改:2020 年 10 月 28 日
如果觉得我的文章对你有用,请随意赞赏