欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【MySQL 实战】03. MySQL 主从复制(一主一从)

程序员文章站 2022-06-24 11:06:38
1. 原理主动复制原理图:主库负责写,从库负责读,从库需要不断获取主库数据更新到从库。(存在延时)我们知道主库添加数据是要写逻辑日志binlog,从库通过 I/O进程获取主库的binlog文件,然后写入到中转日志文件 Relay log,在从Relay log 中恢复数据。2. 配置134 主服务器配置,首先修改 mysql 配置文件 vi /etc/my.cnf#主服务器唯一IDserver-id=1#启用二进制日志log-bin=mysql-bin# 设置不要复制的数据库(可设置多...

1. 原理

主动复制原理图:主库负责写,从库负责读,从库需要不断获取主库数据更新到从库。(存在延时)
我们知道主库添加数据是要写逻辑日志binlog,从库通过 I/O进程获取主库的binlog文件,然后写入到中转日志文件 Relay log,在从Relay log 中恢复数据。
【MySQL 实战】03.  MySQL 主从复制(一主一从)

2. 配置

【MySQL 实战】03.  MySQL 主从复制(一主一从)

134 主服务器配置,首先修改 mysql 配置文件 vi /etc/my.cnf

#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
设置需要复制的数据库,从库是从接入点开始复制的,主从架构未搭建完成前如果创建数据库,导致搭建好以后备库没有,执行SQL语句就会出现问题,所以在搭建主从复制架构以后,再次执行创建库的语句
binlog-do-db=testdb
#设置logbin格式,日志格式有三种,分别是 satement,row,mined,后面博客中我会详解这三种格式的优缺点
binlog_format=STATEMENT

133 从服务器配置,修改 mysql 配置文件 vi /etc/my.cnf

#从服务器唯一ID
server-id=2
#启用中转日志
relay-log=mysql-relay

主从配置文件生效,重启主从服务器,执行 systemctl restart mysqld 命令,并通过命令systemctl status mysqld 查看服务器状态
【MySQL 实战】03.  MySQL 主从复制(一主一从)
主从服务器分别开启3306端口,并关闭防火墙

# 查看防火墙状态
systemctl status firewalld
# 开启防火墙
systemctl start firewalld
# 开启3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
# 重新加载防火墙
firewall-cmd --reload
# 查看防火墙是否启动成功
firewall-cmd --zone=public --query-port=3306/tcp
# 关闭防火墙
systemctl stop firewalld

在134 主服务器授予133 从服务器访问权限

# 登陆134 mysql
mysql -uroot -proot
# 执行授权命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
# 查询master的状态
show master status;

【MySQL 实战】03.  MySQL 主从复制(一主一从)

133 从机复制134 主机,登陆从机 mysql 执行复制命令

# 停止从服务器复制功能
stop slave;
# 重置主从
reset master;

执行复制命令,命令的参数是我们上图获取到的master 信息

CHANGE MASTER TO MASTER_HOST='192.168.183.134',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=154;

分别执行 启动复制命令start slave; 和查看服务器状态命令 show slave status\G;
【MySQL 实战】03.  MySQL 主从复制(一主一从)

3. 测试

134 主服务器创建 testdb 数据库,创建表 user ,并执行插入语句

CREATE DATABASE testdb;
use testdb;
CREATE TABLE user(id INT,NAME VARCHAR(20));
INSERT INTO user VALUES(1,'fengjiaixng');
select * from user;

133 从服务器查看是否复制成功
【MySQL 实战】03.  MySQL 主从复制(一主一从)
如果停止复制,则执行 stop slave;命令,如果重新配置主从 分别执行 stop slave;reset master;

本文地址:https://blog.csdn.net/fjxcsdn/article/details/107440700

相关标签: Mycat MySQL