MySQL主从复制实现
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,主从复制原理1.该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志。在事件写入二进制日志完成后,maste
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
ssh 数据库mysql视图
韦忒网络技术服务部
网络技术和电子商务考题
河南网络技术转让哪家好
北京凯普瑞软件开发有限公司
求生之路2 服务器ip
nist网络安全控制目录
网络安全 解放军报
网络技术服务部经营项目
暴雪亚洲服务器注册账号
中国科学经济新闻数据库
软件开发系统设计规则
计算机四级网络技术激活码
ibm服务器管理平台
网络安全法院开庭公开网
嘉定区多场景led大屏服务器
十堰正规软件开发售后保障
软件开发it知识图谱
网络安全卫生小标语
战地4服务器网页
个体工商户从事软件开发
后台管理小程序数据库
六安游戏软件开发
文件上传服务器乱码
贵州拼接服务器厂家
连接cs go时服务器发生错误
嗨皮咳嗽是什么服务器
互联网科技孙正义
不同服务器数据库互相调用
网络技术高级工程师专业学历