MySQL主从复制实现
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,主从复制原理1.该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志。在事件写入二进制日志完成后,maste
千家信息网最后更新 2024年11月14日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 mysqld
2.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安全错误
数据库的锁怎样保障安全
网络安全技术主要包括哪几方面
双流减震改装服务器
陕西省继续教育网络安全
崇明区企业网络技术口碑推荐
rsa网络安全教育计划
数据库中is 1是什么意思
法国公共药物数据库
利用iis能创建www服务器
网络技术开发及咨询
附件可以直接上传服务器吗
网络技术毕业论文选题
修复masret数据库软件
建立矛盾纠纷数据库
k2p怎么配置dns服务器
全球网络安全法律法规收集
asp办公软件开发
数据库管理系统是数据的集合
安徽服务器机柜定制价格
俄服失落的方舟哪个服务器好
我的世界籽岷双人小游戏服务器
美国网络安全问题
网络技术服务中心是干啥的
充分认识网络安全数据安全重要性
网络安全发现第二十七条
异星探险家连接服务器失败
路由器与服务器连接
数据库一定要外键吗
软件开发开普票还是专票
夏普服务器原理图
互联网科技有限公司注册商标