mysql做主从relay-log问题

解决MySQL主从复制初始化失败
本文介绍了解决MySQL主从复制过程中遇到的错误1872:从库无法从仓库初始化中继日志信息结构的问题。提供了两种解决方案:一是通过重置主库并重新配置从库;二是更改配置文件my.conf中的中继日志路径。

原来有个数据库也是从库 不过从新做主从,配置文件并没有改变

dba:(none)> start slave;
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

解决办法:

reset master
然后在change master
②修改my.conf的配置文件的relay_log=/var/lib/mysql/msql-relay.log
修改为别的名字(relay_log=/var/lib/mysql/msql-salve-relay.log )或者修改目录都可以

转载于:https://blog.51cto.com/wsxxsl/2049516

### MySQL Relay-Log 配置详解及 relay-log=relay-bin 的作用和设置方法 #### 1. relay-log 的作用 `relay-log` 是 MySQL 主从复制机制中的关键组件之一。在主从复制中,从库(Slave)会将主库(Master)的二进制日志(binlog)读取并存储到本地的 relay-log 文件中。这些文件用于记录主库上的所有更改操作,从而允许从库根据 relay-log 文件逐步同步数据[^1]。 #### 2. relay-log=relay-bin 的具体含义 `relay-log=relay-bin` 是一个配置项,用于指定 relay-log 文件的名称前缀。如果未明确设置该参数,MySQL 默认会在数据目录下生成以 `hostname-relay-bin` 开头的日志文件[^2]。例如: ```ini [mysqld] relay_log = relay-bin ``` 上述配置表示 relay-log 文件将以 `relay-bin` 为前缀命名,如 `relay-bin.000001`、`relay-bin.000002` 等。 #### 3. relay-log 的设置方法 通过修改 MySQL 配置文件(通常是 `my.cnf` 或 `my.ini`),可以调整 relay-log 的相关参数。以下是几个常用的配置选项及其说明: ##### (1) 指定 relay-log 文件路径和名称 可以通过 `relay_log` 参数设置 relay-log 文件的具体路径和名称前缀。例如: ```ini [mysqld] relay_log = /var/log/mysql/relay-bin ``` 上述配置表示 relay-log 文件将存储在 `/var/log/mysql/` 目录下,并以 `relay-bin` 为前缀命名[^3]。 ##### (2) 设置 relay-log 信息文件 `relay_log_info_file` 参数用于指定记录 relay-log 信息的文件位置。默认情况下,MySQL 使用 `relay-log.info` 文件保存从库当前读取 relay-log 的位置以及主库 binlog 的恢复位置。可以通过将此参数设置为表名,将信息记录到 `mysql.slave_relay_log_info` 表中[^4]。 ```ini [mysqld] relay_log_info_file = mysql.slave_relay_log_info ``` ##### (3) 自动清理 relay-log 文件 `relay_log_purge` 参数控制 relay-log 文件是否在执行完后自动删除。默认值为 `ON`,表示会自动清理已执行的 relay-log 文件。如果将其设置为 `OFF`,则需要手动清理这些文件[^5]。 ```ini [mysqld] relay_log_purge = ON ``` ##### (4) 限制 relay-log 文件总大小 `relay_log_space_limit` 参数用于限制 relay-log 文件的总大小。当达到该限制MySQL 会轮换 relay-log 文件并创建新的文件。需要注意的是,这个参数仅对 IO 线程有效,SQL 线程不会受到影响[^6]。 ```ini [mysqld] relay_log_space_limit = 1G ``` ##### (5) 启用崩溃恢复功能 `relay_log_recovery` 参数决定在从库崩溃恢复,是否重新初始化 relay-log 文件。启用该参数可以避免因 relay-log 文件损坏而导致的数据不一致问题[^7]。 ```ini [mysqld] relay_log_recovery = ON ``` #### 4. 示例配置 以下是一个完整的 relay-log 配置示例: ```ini [mysqld] relay_log = /var/log/mysql/relay-bin relay_log_info_file = mysql.slave_relay_log_info relay_log_purge = ON relay_log_space_limit = 2G relay_log_recovery = ON ``` #### 5. 注意事项 - 在修改 relay-log 相关参数前,请确保从库已停止复制进程。 - 如果 relay-log 文件占用过多磁盘空间,可以通过调整 `relay_log_space_limit` 参数或手动清理旧的日志文件来释放空间。 - 启用 `relay_log_recovery` 参数可以提高数据一致性,但可能会导致恢复间增加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值