MySQL主从复制实现
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,主从复制原理1.该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志。在事件写入二进制日志完成后,maste
千家信息网最后更新 2026年10月31日MySQL主从复制实现
主从复制原理

1.该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志。在事件写入二进制日志完成后,master通知存储引擎提交事务。
2.slave将master的Binary Log拷贝到它自己的Relay Log。首先,slave开始一个工作线程--I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。binlog dump process从master的二进制日志中读取事件,如果已经同步了master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入Relay Log。
3.SQL slave thread(SQL从线程)处理该过程的最后一步。SQL Thread从Relay Log中读取事件,并重放其中的事件,从而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,Relay Log通常会位于OS的缓存中,所以Relay Log的开销很小。
实现步骤
环境
防火墙和selinux都关闭
| master | slave | |
|---|---|---|
| IP | 192.168.7.71 | 192.168.7.72 |
| 主机名 | master01 | slave01 |
| OS | CentOS7 | CentOS7 |
| MySQL版本 | 5.7.28 | 5.7.28 |
1.安装
略2.master配置
2.1将以下内容添加到my.cnf文件中,然后重新启动数据库。
# vim /etc/my.cnf[mysqld]log-bin = mysql-binserver-id = 1# 重启服务systemctl start mysqld2.2 创建授权复制账号
grant replication slave on *.* to repluser@'192.168.7.%' identified by '123.com';2.3 查看二进制日志文件名和position信息
mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 | 154 | | | |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)3.slave配置
3.1 将以下内容添加到my.cnf文件中,然后重新启动数据库。
[mysqld]server-id = 2read_only = ON #设为只读,但是对超级用户无效。3.2 执行以下命令,指定连接主服务的信息。
mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.7.71', -> MASTER_USER='repluser', -> MASTER_PASSWORD='123.com', -> MASTER_PORT=3306, -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=154;注:一定要确保MASTER_LOG_FILE与文件匹配,并且MASTER_LOG_POS与先前的SHOW MASTER STATUS返回的位置匹配。
3.3 启动slave
mysql> start slave;3.4 查看I/O线程和SQL线程状态,如果为Yes表示与主服务器同步成功。
mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.7.71 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 154 Relay_Log_File: slave01-relay-bin.000002 Relay_Log_Pos: 320 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes...省略信息...3.5 和复制功能相关的文件
master.info:用于保存slave连接至master时的相关信息,例如账号、密码、服务器地址等relay-log.info:保存在当前slave节点上已经复制的当前二进制日志和本地relay log日志的对应关系
线程
日志
二进制
事件
数据
文件
信息
服务
事务
一致
内容
数据库
服务器
账号
过程
同步
更新
配置
主从
普通
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新华互联网科技
广东猪兼强互联网科技有限公司
河南真二互联网科技有限公司
互联网的科技创新
科技服务与互联网
远信互联网科技
唐信互联网科技
奇士达互联网科技
互联网女皇 腾讯科技
中国互联网金融科技基金
深圳市运趣互联网科技有限公司
须眉科技是互联网公司吗
深圳市罗太互联网科技有限公司
中国互联网有什么科技
美国互联网科技公司
厦门江牛科技互联网
半导体是互联网高科技吗
上海同邻互联网科技有限公司规模
悟空问答互联网科技
六子台科技互联网展会
互联网科技工作委员会副主任毛军
深圳市运趣互联网科技有限公司
汽车互联网创新科技园
广州恒生互联网科技有限
搜狐科技互联网
互联网方面的科技前沿
江苏互联网科技小贷
福建互联网展示科技馆设计
全球科技与互联网公司市值变化
互联网对科技影响