centos7搭建mysql双主配置环境

环境准备
  • centos 7
  • mysql 5.7
系统 IP 端口
master1 192.168.192.10 3306
master2 192.168.192.20 3306
一、master1配置

1、修改mysql配置文件

vim /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

# 开启二进制归档日志
log-bin=mysql-bin
# 定义服务器唯一id,建议以服务器IP最后一位为准
server-id=10
# 开启从库日志更新
log_slave_updates=1

# 需要同步的数据库名,如果有多个,则重复此参数,每个数据库一行
binlog-do-db=test

# 不同步的 mysql 数据库,同上
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys

2、创建同步账号

CREATE USER 'repl'@'192.168.192.20' IDENTIFIED BY 'Mt@2020';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.192.20';

3、重启服务

systemctl restart mysqld
二、master2配置

1、修改master2上mysql配置文件

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

# 开启二进制归档日志
log-bin=mysql-bin
# 定义服务器唯一id,建议以服务器IP最后一位为准
server-id=20
# 开启从库日志更新
log_slave_updates=1
read_only=1

# 需要同步的数据库名,如果有多个,则重复此参数,每个数据库一行
binlog-do-db=test

# 不同步的 mysql 数据库,同上
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
binlog-ignore-db=sys

2、创建同步账号

CREATE USER 'repl'@'192.168.192.10' IDENTIFIED BY 'MT@2020';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.192.10';

3、重启服务

systemctl restart mysqld
三、开始主从复制

1、分别在master1,master2中登录Mysql并执行如下命令

# 查看master状态,记录二进制日志文件编号和位置
SHOW MASTER STATUS;
# 用于停止io线程
STOP SLAVE IO_THREAD FOR CHANNEL '';

# 设置作为从库到主库读取的信息
# 在master1上执行的信息来自于master2上的show master status信息,同理master2也一样
CHANGE MASTER TO
  MASTER_HOST='192.168.192.20', -- master2的 ip
  MASTER_USER='repl',
  MASTER_PASSWORD='mysql', 
  MASTER_LOG_FILE='mysql-bin.000003', -- master2的日志文件
  MASTER_LOG_POS=155; -- master2 的日志位置

# 查看系统sql_mode
select @@sql_mode;
# 开启主从复制
start slave;
# 查看从库状态
show slave status \G;
# 停止主从复制;
stop slave;
四、验证是否成功

在start slave后,执行show slave status \G查看下面是否为yes

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

到此为止,实现了两台mysql服务器的主方备份。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容