答案是通过SHOW SLAVE STATUS命令查看主从复制状态,重点关注Slave_IO_Running、Slave_SQL_Running和Seconds_Behind_Master等字段判断复制是否正常。
在 MySQL 中查看主从复制状态,主要通过 SHOW SLAVE STATUS 命令来获取详细信息。这个命令会返回从库的复制线程运行情况、延迟、错误等关键指标。
1. 执行命令查看从库状态
登录到从库的 MySQL 客户端,执行以下命令:
SHOW SLAVE STATUSG
注意:使用 G 而不是分号可以格式化输出,让结果更易读。
2. 关键字段说明
重点关注以下几个字段:
- Slave_IO_Running:显示 IO 线程是否正常运行。正常为 Yes,表示正在从主库读取 binlog。
- Slave_SQL_Running:显示 SQL 线程是否正常运行。正常为 Yes,表示正在应用中继日志。
- Last_Error 和 Last_IO_Error:如果有错误,这里会显示具体的错误信息。
- Seconds_Behind_Master:表示从库落后主库的秒数。为 0 表示同步及时,数值较大说明存在延迟。
- Master_Host:当前主库的 IP 或主机名。
- Relay_Log_Pos 和 Read_Master_Log_Pos:可用来判断日志是否在推进。
3. 快速检查复制是否正常
如果只是想快速确认复制是否正常,可以在命令行中这样检查:
SHOW SLAVE STATUSG
查看输出中:
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Seconds_Behind_Master: 接近 0
- 没有 Last_Error 内容
满足以上条件,通常表示主从复制工作正常。
4. 其他常用辅助命令
- SHOW PROCESSLIST;:查看当前线程,关注
system user
的 I/O 和 SQL 线程状态。 - SHOW MASTER STATUS;:在主库上执行,查看当前 binlog 位置,用于核对同步点。
基本上就这些。只要定期检查 SHOW SLAVE STATUS
的输出,就能掌握主从复制的健康状态。遇到问题优先看错误信息和线程运行状态,大部分异常都能从中定位。