环境
NAME | IP |
---|
Master | 172.16.0.14 |
Slave | 172.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)