MySQL Slave master.info
在 MySQL 中,master_info_repository
参数用于控制从库如何存储主库的连接元数据(如复制位置、主库服务器ID等信息),其值可以是 FILE
(存储在文件 master.info
中)或 TABLE
(存储在系统表 mysql.slave_master_info
中)
1 查询从库存储主库的连接元数据方式
1.1 使用 SHOW VARIABLES 命令
mysql> SHOW VARIABLES LIKE 'master_info_repository';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| master_info_repository | TABLE |
+------------------------+-------+
1 row in set (0.01 sec)
推荐设置
MySQL 5.7+ 版本:推荐设置为
TABLE
,原因如下:安全性:避免明文存储密码(
FILE
模式下密码可能暴露在文件中)。可靠性:表存储支持事务,可减少复制中断风险。
多源复制支持:MySQL 5.7+ 的多源复制要求此参数为
TABLE
。
MySQL 8.0+ 版本:默认值为
TABLE
,无需额外配置。
1.2 通过 MySQL 配置文件查看
如果参数在配置文件(如 my.cnf
或 my.ini
)中显式设置,可直接检查文件内容:
[mysqld]
master-info-repository = table
注意:若未在配置文件中设置,则使用 MySQL 默认值(MySQL 8.0+ 默认值为
TABLE
)。
2 验证存储位置
若为
FILE
:检查master.info
文件(通常位于数据目录,如/var/lib/mysql/master.info
)。若为
TABLE
:查询系统表:SELECT * FROM mysql.slave_master_info; 若为主库,则返回空
3 当前托管方式问题
例行切换时依赖节点有 {datadir}/master.info
文件,即 MySQL 8.0+ 需要改配置才支持例行切换
Last updated