1、概念介绍
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。
MySQL复制的有点主要包含以下三个方面:
- 主库出现问题,可以快速切换到从库提供服务。
- 实现读写分离,降低主库的访问压力。
- 可以在从库中执行备份,以避免备份期间影响主库服务。
MySQL的主从复制原理:
- Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog 中。
- 从库读取主库的二进制日志文件Binlog,写入到从库的中继日志Relay Log 。
- slave重做中继日志中的事件,将改变反映它自己的数据。
2、主库配置
a. 配置防火墙
# 开放指定的3306端口号(生产环境):
firewall-cmd--zone=public --add-port=3306/tcp -permanent
firewall-cmd -reload
# 关闭服务器的防火墙(本次采用关闭防火墙):
systemctl stop firewalld
systemctl disable firewalld
b. 修改 /etc/my.cnf
# mysql服务ID,保证整个集群环竟中唯一,取值范围:1 - 2^32 - 1,默认为1
server-id=1
# 是否只读,1代表只读,0代表读写
read-only=0
# 设置二进制日志文件
log_bin=binlog
#忽略的数据,指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01
# 重启服务
systemctl restart mysqld
c. 创建用户、赋予权限
登录mysql,创建远程连接的账号,并授予主从复制权限
-- 创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
create user 'itcast'@'%' identified with mysql_native_password by 'Root@123456';
-- 为‘itcast'@'%'用户分配主从复制权限
grant replication slave on *.* to 'itcast'@'%';
d. 查看二进制日志坐标
show master status;
字段含义说明:
- file:从哪个日志文件开始推送日志文件
- position : 从哪个位置开始推送日志
- binlog_ignore_db :指定不需要同步的数据库
3、从库配置
a. 配置防火墙
# 开放指定的3306端口号(生产环境):
firewall-cmd--zone=public --add-port=3306/tcp -permanent
firewall-cmd -reload
# 关闭服务器的防火墙(本次采用关闭防火墙):
systemctl stop firewalld
systemctl disable firewalld
b. 修改 /etc/my.cnf
# 保证整个集群环竟中唯一,取值范围:1 - 2^32 - 1,和主库不相同
server-id=2
# 是否只读,1代表只读,0代表读写
read-only=1
# 重启服务
systemctl restart mariadb
c. 登录mysql,设置主库配置
-- mysql 8.0.26 以后
change replication source to source_host='192.168.137.252',source_user='test1',source_password='123456',source_log_file='binlog.000001',source_log_pos=245;
-- mysql 8.0.26 之前
change master to master_host='192.168.137.252',master_user='test1',master_password='123456',master_log_file='binlog.000001',master_log_pos=245;
d. 开启同步操作
#8.0.22之后
start replica;
#8.0.22之前
start slave;
-- 查看主从同步状态
show replica status; -- 8.0.22之后
show slave status; -- 8.0.22之前
文章来源:https://www.toymoban.com/news/detail-816024.html
测试:在主数据库创建数据,在从库中查询数据,验证主从是否同步。文章来源地址https://www.toymoban.com/news/detail-816024.html
到了这里,关于MySQL 主从复制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!