show slave hosts仅显示显式注册的从库,需从库配置report_host和report_port并重启生效;若结果为空或不全,主因是未配置report_host;真实连接状态应查processlist中binlog dump线程。

直接查 SHOW SLAVE HOSTS,但必须满足前提条件
这个命令是主库上最接近“列出所有从库”的原生命令,但它不主动探测,只显示那些**显式注册过自己身份**的从库。前提是:每个从库的配置里必须设置 report_host 和 report_port,且能成功连接主库完成注册。
执行方式很简单:
SHOW SLAVE HOSTS;
返回结果包含 Server_id、Host、Port、Master_id 等字段。如果结果为空或只有部分从库,不是命令错了,而是对应从库没配 report_host —— 常见于跳过这步直接启复制的部署。
- MySQL 8.0 默认不启用
report_host,需手动加到从库my.cnf的[mysqld]段里,例如:report_host=192.168.91.153、report_port=3306 - 改完必须重启从库服务,
SET GLOBAL动态修改无效 - 主库无需额外配置,但要确保从库用的复制用户有
REPLICATION CLIENT权限(否则可能看不到完整信息)
用 information_schema.processlist 提取 IP + Port,但需拼接
当 SHOW SLAVE HOSTS 返回空,而你又确认从库在运行复制时,可以退而求其次:从主库当前活跃连接中识别出 Binlog Dump 进程,再解析其 host 字段。
MySQL 8.0 中,host 字段格式通常是 ip:port(如 192.168.91.153:54123),但注意:这个 port 是从库发起连接时的**本地随机端口**,不是从库 MySQL 监听的端口(比如 3306)。所以不能直接当从库服务端口用。
- 提取 IP 的可靠写法:
SELECT DISTINCT SUBSTRING_INDEX(host, ':', 1) AS slave_ip FROM information_schema.processlist WHERE command = 'Binlog Dump' OR command = 'Binlog Dump GTID'; - 想猜监听端口?只能靠约定——多数情况下是默认
3306,或从库配置文件确认;show slave hosts里的Port才是真实监听端口 - 该方法无法区分“已断连但进程未清理”的假从库,也不反映复制延迟或状态
performance_schema.replication_group_members 不适用于传统主从
这个表只在 MySQL Group Replication(MGR)模式下有数据,和传统的基于 binlog 的异步/半同步主从完全无关。如果你用的是标准 CHANGE REPLICATION SOURCE TO 配置的主从,查这个表永远返回空行。
别被名字误导——replication_group_members 里的 “replication” 指的是组复制协议,不是泛指所有复制类型。它和 SHOW SLAVE HOSTS 或 processlist 属于不同机制,不能混用。
- 检查是否启用 MGR:
SELECT * FROM performance_schema.replication_group_members;若返回空,说明不是 MGR 架构 - 误查此表会浪费时间,也得不到任何传统从库信息
为什么 SHOW SLAVE STATUS 在主库上查不到从库?
SHOW SLAVE STATUS(或 MySQL 8.0.22+ 推荐的 SHOW REPLICA STATUS)是**从库自己的命令**,只能在从库实例上执行,用来查看它自己拉取和执行 binlog 的状态。你在主库上执行,只会报错 ERROR 1227 (42501): Access denied; you need (at least one of) the SUPER or REPLICATION CLIENT privilege(s) for this operation,或者干脆返回空结果集。
- 主库没有
Slave_IO_Running这类字段的概念,它只有Master角色视角的状态(如show master status) - 试图在主库跑
SHOW SLAVE STATUS\G是典型的方向性错误,不会输出任何从库列表 - 真正需要监控从库运行状态时,得登录到各从库分别执行该命令
最可靠的方案永远是:从库配好 report_host 和 report_port,然后主库上用 SHOW SLAVE HOSTS。其他方法都是补救或辅助手段,且各自有不可忽视的盲区——尤其是端口混淆和状态缺失问题,线上排查时容易绕弯子。











