MySQL 5.7与8.0中替代SHOW SLAVE STATUS的视图查询需求
MySQL 5.7与8.0通过系统视图查询从库状态
在MySQL 5.7和8.0中,无需执行SHOW SLAVE STATUS,可以直接查询内置系统视图获取从库复制状态信息,以下是各版本可用的核心视图及用法:
MySQL 5.7
information_schema.REPLICATION_SLAVE_STATUS
这个视图完全对应SHOW SLAVE STATUS的输出结果,默认情况下一行记录对应唯一的复制通道。要获取Seconds_Behind_Master,直接执行:
也可以一次性查询多个关键状态字段,比如IO/SQL线程运行状态:SELECT Seconds_Behind_Master FROM information_schema.REPLICATION_SLAVE_STATUS;SELECT Slave_IO_Running, Slave_SQL_Running, Last_Error FROM information_schema.REPLICATION_SLAVE_STATUS;
MySQL 8.0
8.0保留了5.7的视图,同时新增了更细粒度的Performance Schema视图,适配多复制通道场景:
information_schema.REPLICATION_SLAVE_STATUS
用法和5.7一致,但支持多通道,每条记录对应一个复制通道,可通过Channel_Name区分。performance_schema.replication_applier_status
专门记录SQL应用线程的状态,其中APPLIER_BEHIND_MASTER字段等价于Seconds_Behind_Master,查询语句:SELECT APPLIER_BEHIND_MASTER FROM performance_schema.replication_applier_status;performance_schema.replication_connection_status
用于查看IO连接线程的状态,比如是否成功连接主库、最近的连接错误等:SELECT Connected, Last_Error FROM performance_schema.replication_connection_status;performance_schema.replication_applier_status_by_worker
当开启多线程复制时,这个视图可以查看每个工作线程的具体执行状态,方便定位复制延迟或异常。
所有这些视图都是MySQL内置的系统视图,无需手动创建,直接执行SELECT语句即可获取所需的从库状态数据。
内容的提问来源于stack exchange,提问作者Astora
相关产品推荐
相关产品推荐

