千家信息网

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都关闭
masterslave
IP192.168.7.71192.168.7.72
主机名master01slave01
OSCentOS7CentOS7
MySQL版本5.7.285.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办公软件开发 数据库管理系统是数据的集合 安徽服务器机柜定制价格 俄服失落的方舟哪个服务器好 我的世界籽岷双人小游戏服务器 美国网络安全问题 网络技术服务中心是干啥的 充分认识网络安全数据安全重要性 网络安全发现第二十七条 异星探险家连接服务器失败 路由器与服务器连接 数据库一定要外键吗 软件开发开普票还是专票 夏普服务器原理图 互联网科技有限公司注册商标
0