【MYSQL】主从复制机制(图解)

一、什么是主从复制

                主从复制是一种通过binlog(二进制日志)进行操作的一直复制机制,它会有一个主数据库,还会有一个从数据库,根据binlog就可以把主数据库中的信息复制到从数据库之中。这个主从复制的好处就是如果在并发压力大的时候,可以在主数据库进行增删改操作,在从数据库进行查操作可以降低主数据库的压力。如果主数据库崩溃了,此时可以把从数据库顶上。在主数据库备份期间,一般保证数据的一致性会加一把全局锁,此时为了保证数据库正常操作可以将从数据库进行访问操作。

二、 主从复制原理

        异步复制

                        废话少说看图说话

        这种方式可能会有问题,就是同步的一般的时候主库挂掉,然后从库晋升为主库,这个时候可能数据会有残缺。还有两种复制方法,一种是同步复制,就是所有从库复制过程中需要所有从库都将数据同步成功后才会给主库响应效率太慢,一般不会采取这种方式。最后一种就是5.7后出现的半同步复制,如果配置中设置从库为1,那么意思就是将主库数据同步到从库数据库中,只有一个库同步成功那么就会给主库响应。这样性能好,然后数据也稳定。

三、配置主从

        主库配置

        设置配置文件中主数据库就设置读写,id随意只要主从不一样就可以,剩下两个配置了解就可以。

然后创建账号赋予主从的权限

        从库配置

                设置配置

这里面XXX存的对应的是主库的ip,和刚才创建的用户,然后在主库用SHOW MASTER STATUS查出数据,填到后面的xx里对应即可。

只有 io和sql这两个是开启了就说明 没问题

<think>好的,用户需要查找关于MySQL主从架构的配置图解或教程。首先,我需要回顾已有的引用内容,看看是否有相关的信息。根据引用[2],用户提到在Slave1重新搭建了MySQL,并进行了主从架构的搭建,说明引用中可能包含配置步骤。引用[3]提到主从复制的应用场景,如实时数据备份,引用[4]讨论了混合模式复制,引用[5]提到了MHA工具用于高可用性管理。这些引用可以作为补充信息,但需要整合成一个配置教程。 接下来,需要确保回答结构清晰,分步骤讲解主从复制的配置流程,并符合用户要求的格式,比如使用中文、正确的LaTeX语法等。同时,要生成相关问题,并正确标注引用。需要注意用户可能对配置细节不熟悉,所以步骤要详细,包括修改配置文件、创建用户、同步数据等关键点。此外,用户提到可能需要图解,但文本回答中无法提供图片,因此需要用文字描述架构图的结构,例如主库和从库的关系,数据流向等。 需要检查是否有遗漏的步骤,例如防火墙设置、权限配置、服务重启等。同时,要确保示例命令准确,比如CHANGE MASTER TO的正确参数,以及如何启动复制进程。还要注意引用对应的来源,比如引用[2]和引用[3]的应用场景。最后,生成的相关问题需要围绕主从架构的配置、同步原理、高可用工具等,帮助用户进一步了解。</think>### MySQL主从架构配置教程 #### 一、架构示意图 ``` 应用程序 -> 主库(Master) -> 二进制日志(Binlog) ↘ 通过IO线程 → 中继日志(Relay log) -> 从库(Slave) ``` 主库负责写操作,从库通过复制线程异步同步数据[^3] #### 二、配置步骤 1. **主库配置** ```ini # /etc/my.cnf [mysqld] server-id=1 log-bin=mysql-bin binlog_format=row # 推荐使用行格式[^4] ``` 2. **从库配置** ```ini # /etc/my.cnf [mysqld] server-id=2 relay-log=mysql-relay read_only=1 # 设置为只读模式 ``` 3. **创建复制账户** ```sql -- 在主库执行 CREATE USER 'repl'@'%' IDENTIFIED BY 'SecurePass123!'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; ``` 4. **数据同步** ```bash # 主库备份 mysqldump --all-databases --master-data > dbdump.sql # 从库导入 mysql < dbdump.sql ``` 5. **启动复制** ```sql -- 在从库执行 CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='SecurePass123!', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; START SLAVE; ``` 6. **验证状态** ```sql SHOW SLAVE STATUS\G -- 确认Slave_IO_Running和Slave_SQL_Running均为Yes ``` #### 三、关键原理 主从复制通过三个阶段实现: $$ \begin{cases} 1.\ \text{主库写Binlog}\\ 2.\ \text{从库IO线程拉取Binlog}\\ 3.\ \text{从库SQL线程重放日志} \end{cases} $$ #### 四、生产建议 1. 建议配合MHA实现自动故障转移[^5] 2. 使用GTID模式简化故障恢复 3. 监控复制延迟指标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值