数据库主从配置与主从重置

本文详细介绍了MySQL数据库的主从配置步骤,包括在master_db和slave_db上的my.cnf配置,以及如何重启服务。当MySQL宕机后,提供了主从重置的流程,包括查看日志、停止同步、重置奴隶状态、更新主从配置以及修改mycat的相关设置以恢复主从关系。
部署运行你感兴趣的模型镜像

一、master_db    /etc/my.cnf内容

binlog-do-db=zhxq

binlog-do-db=register

binlog-ignore-do=mysql

replicate-do-db=zhxq

replicate-do-db=register

replicate-ignore-db=mysql

log-bin=mysql-bin

server-id=1

log-slave-updates=1

skip-slave-start

 

二、slave_db    /etc/my.cnf内容

binlog-do-db=zhxq

binlog-do-db=register

binlog-ignore-do=mysql

replicate-do-db=zhxq

replicate-do-db=register

replicate-ignore-db=mysql

log-bin=mysql-bin

server-id=2

log-slave-updates=1

skip-slave-start

 

三、重启主从mysql服务

1.查看master_db的状态,show master status

2.在slave_db上登录mysql

mysql>change master to master_host='192.168.137.11',master_port=3306, master_user='slave', master_password='123456',MASTER_LOG_FILE='mysql-bin.000015',MASTER_LOG_POS=106;

mysql>start slave;

 

四、mysql宕机恢复之后重置主从

1.       查看mycat日志,主从切换的时间

2.       停止slave_db的主从同步

3.       查看slave_db的二进制日志,找到开始写slave_db的位置position

4.       slave_db,mysql>reset slave all

5.       重新启动master_db

6.       在master_db上

mysql>change master to master_host='192.168.137.11',master_port=3306, master_user='slave', master_password='123456',MASTER_LOG_FILE='mysql-bin.000015',MASTER_LOG_POS=106;

         mysql>start slave;

7.       mycat的schema.xml修改,更换主从

8.       mycat的dnindex.property改为0

9.       重启mycat

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think> 首先,用户的问题是关于MySQL数据库主从环境中RESET MASTER和RESET SLAVE的区别。我需要基于提供的引用内容来回答。 关键引用点: - 引用[1]:RESET SLAVE使从库忘记主从复制的位置信息,删除master.info、relay-log.info和所有relay log文件,并启用新relay log文件。用于主从关系被破坏后重新配置。 - 引用[2]:确认在删除binlog和relaylog时,可能需要RESET MASTER和RESET SLAVE来解决主从配置问题。 - 引用[3]:RESET MASTER删除所有二进制日志,创建新日志。警告不要盲目执行,以免从库找不到主库binlog。 - 引用[4]:RESET MASTER用于主库备份前,确保从库复制状态正确,生成新二进制日志文件。 - 引用[5]:RESET SLAVE使从库忘记复制位置,删除相关文件,启动新relay log文件;需要先停止slave线程。 我需要结构化回答,确保清晰。系统指令要求: - 使用中文回答。 - 行内数学表达式用$...$格式,但这里可能不涉及数学。 - 独立公式用$$...$$,但这里不需要。 - 生成相关问题。 - 引用段落末尾添加引用标识,如[^1]。 - 回答结构清晰,真实可靠。 回答结构: 1. **引言**:简要解释两者的作用。 2. **区别对比**:使用表格或列表清晰地对比RESET MASTER和RESET SLAVE。 - 作用对象:MASTER主库执行,SLAVE在从库执行。 - 功能:RESET MASTER删除主库binlog;RESET SLAVE删除从库的复制信息。 - 影响:RESET MASTER可能中断复制;RESET SLAVE用于重置从库状态。 - 使用场景。 3. **详细解释**:基于引用,详细描述每个命令。 4. **注意事项**:警告潜在风险。 5. **生成相关问题**:在末尾添加相关问题。 生成相关问题: - 类似于示例,基于内容提问。 - 例如:如何安全使用RESET MASTER?何时使用RESET SLAVE?主从复制中断的解决方法? 确保引用自然添加: - 例如,在解释RESET SLAVE时,提到引用[1]的内容。 中文回答: - 全程使用中文。 最终输出: - 回答用户问题。 - §§相关问题§§部分列出问题。 </think> ### MySQL数据库主从环境下RESET MASTER和RESET SLAVE的区别解析 在MySQL主从复制环境中,`RESET MASTER`和`RESET SLAVE`是两个关键的命令,用于管理复制状态和日志文件。它们的核心区别在于执行位置、功能对象和使用场景。下面我将基于提供的引用内容,逐步解释这些区别,确保回答真实可靠。 #### 1. **基本区别概述** - **执行位置**: - `RESET MASTER`命令必须在MySQL **主库Master)** 上执行,影响主库的二进制日志(binlog)[^3][^4]。 - `RESET SLAVE`命令必须在MySQL **从库(Slave)** 上执行,影响从库的复制元数据和中继日志(relay log)[^1][^5]。 - **功能对象**: - `RESET MASTER`针对主库binlog文件:它会删除所有现有的二进制日志文件,并创建一个新的binlog文件(例如`mysql-bin.000001`),从头开始记录新日志[^3][^4]。 - `RESET SLAVE`针对从库的复制信息:它会使从库完全忘记主从复制的关系位置,删除`master.info`和`relay-log.info`文件,以及所有中继日志文件,并启动一个新的中继日志文件[^1][^5]。 - **主要目的**: - `RESET MASTER`用于“重置主库的事务日志,通常在主库需要清理旧日志或备份前操作时使用,但需谨慎以避免复制中断[^4]。 - `RESET SLAVE`用于“重置”从库的复制状态,当主从关系被破坏或从库需要重新配置时使用,例如从库报错`ERROR 1201`后恢复连接[^1]。 #### 2. **详细区别对比** 下表总结了关键差异点,基于引用内容整理: | 对比项 | RESET MASTER | RESET SLAVE | |--------|--------------|-------------| | **执行位置** | 主库上执行 | 从库上执行 | | **影响的文件** | 删除所有二进制日志(binlog),创建新binlog文件(如`mysql-bin.000001`)[^3] | 删除`master.info`、`relay-log.info`和所有中继日志(relay log),创建新relay log文件[^1][^5] | | **对复制的影响** | 主库binlog被清空后,从库可能无法找到旧日志位置,导致复制失败(从库报错如“找不到binlog”)。因此,必须在确保从库不需要旧日志时使用[^3][^4]。 | 从库完全忘记复制位置,但不会直接影响主库。执行后,从库需重新配置主从关系(如使用`CHANGE MASTER TO`命令),否则复制无法继续[^1][^5]。 | | **使用场景** | - 主库日志文件过大,需清理旧binlog<br>- 备份操作前,确保从库从新日志开始复制<br>**注意**:避免在生产环境盲目使用,以免中断复制[^4]。 | - 主从关系破坏后(如从库报`ERROR 1201`),恢复从库状态<br>- 从库初始化后重新配置主从<br>- 清理中继日志文件[^1][^2]。 | | **执行前提** | 无特殊要求,但建议先停止主从复制线程(执行`STOP SLAVE`在从库)[^4]。 | 必须先停止从库的复制线程(执行`STOP SLAVE`),否则命令失败[^5]。 | | **风险提示** | 高风险:如果从库依赖旧binlog重置后复制链会中断,需重新配置从库日志位置[^3]。 | 中风险:重置后从库丢失所有复制进度,需重新指定主库信息(如`MASTER_LOG_FILE`和`MASTER_LOG_POS`)[^1]。 | #### 3. **常见使用示例** - **RESET MASTER 示例场景**: 假设主库binlog文件积累过多,占用磁盘空间。在主库执行: ```sql RESET MASTER; ``` 这会清空所有binlog,创建新文件。但之后,从库必须重新配置日志位置,否则复制失败[^4]。 - **RESET SLAVE 示例场景**: 当从库出现`ERROR 1201`错误(主从关系破坏),在从库先停止线程再重置: ```sql STOP SLAVE; RESET SLAVE; ``` 然后重新配置主库信息: ```sql CHANGE MASTER TO MASTER_HOST='192.168.0.167', MASTER_USER='test', MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=176658; START SLAVE; ``` 这能恢复复制[^1]。 #### 4. **注意事项** - **安全警告**: - `RESET MASTER`不应频繁使用,因为它会删除所有事务历史,可能导致数据丢失风险。建议在低峰期操作,并确保从库已同步到最新位置[^3][^4]。 - `RESET SLAVE`在执行前必须先运行`STOP SLAVE`,否则MySQL可能报错。重置后,从库的设置信息(如主库IP)会被清除,需手动重新配置[^5]。 - **PURGE命令的区别**: 普通日志删除(如`PURGE BINARY LOGS`)只需删除文件即可,但在主从配置异常时,`RESET MASTER`或`RESET SLAVE`才是根治方法[^2]。 - **最佳实践**: 在主从复制环境中,优先使用`PURGE`命令清理日志;仅在复制状态破坏时使用`RESET`命令。操作前备份相关文件(如`master.info`),以避免不可逆错误[^1][^3]。 总之,`RESET MASTER`和`RESET SLAVE`的核心区别在于执行对象和作用范围:前者针对主库binlog重置,后者针对从库的复制元数据重置。正确使用能解决复制中断问题,但误用可能导致数据不一致[^1][^3][^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值