MySQL - SHOW BINLOG EVENTS 语句
MySQL SHOW BINLOG EVENTS 语句
SHOW BINLOG EVENTS 语句显示指定二进制日志中的事件。如果您未指定日志名称,则将显示第一个日志。要执行此语句,您需要拥有 REPLICATION SLAVE 权限。此语句显示以下详细信息 -
Log_name - 日志文件的名称。
Pos - 事件的起始位置。
Event_type - 指定事件类型的标识符。
Server_id - 服务器的 ID。
End_log_pos - 日志中事件的结束位置。
Info - 有关事件的更多信息。
语法
以下是 MySQL SHOW BINLOG EVENTS 语句的语法 -
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
示例
您可以像下面这样在二进制日志中显示事件列表 -
SHOW BINLOG EVENTS\G;
输出
上述查询产生以下输出 -
********** 1. row ********** Log_name: TP-bin.000105 Pos: 4 Event_type: Format_desc Server_id: 1 End_log_pos: 125 Info: Server ver: 8.0.22, Binlog ver: 4 ********** 2. row ********** Log_name: TP-bin.000105 Pos: 125 Event_type: Previous_gtids Server_id: 1 End_log_pos: 156 Info: ********** 3. row ********** Log_name: TP-bin.000105 Pos: 156 Event_type: Anonymous_Gtid Server_id: 1 End_log_pos: 233 Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS' ********** 4. row ********** Log_name: TP-bin.000105 Pos: 233 Event_type: Query Server_id: 1 End_log_pos: 366 Info: use `test`; DROP TABLE `employee` /* generated by server */ /* xid=8 */ ********** 5. row ********** Log_name: TP-bin.000105 Pos: 366 Event_type: Anonymous_Gtid Server_id: 1 End_log_pos: 445 Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS' ********** 6. row ********** Log_name: TP-bin.000105 Pos: 445 Event_type: Query Server_id: 1 End_log_pos: 730 Info: use `test`; CREATE TABLE EMPLOYEE( ID INT NOT NULL, FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT, CONTACT INT ) /* xid=9 */ ********** 7. row ********** Log_name: TP-bin.000105 Pos: 730 Event_type: Anonymous_Gtid Server_id: 1 End_log_pos: 809 Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IN 子句
使用 in 子句可以显示特定文件中事件的详细信息。
SHOW BINLOG EVENTS IN TP-bin.000113';
输出
以下是上述 mysql 查询的输出 -
Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
---|---|---|---|---|---|
TP-bin.000113 | 4 | Format_desc | 1 | 125 | Server ver: 8.0.22, Binlog ver: 4 |
TP-bin.000113 | 125 | Previous_gtids | 1 | 156 | |
TP-bin.000113 | 156 | Stop | 1 | 179 |
FROM 子句
FROM 子句用于显示日志中特定位置的事件列表。
SHOW BINLOG EVENTS IN TP-bin.000111' FROM 1241 \G;
输出
执行上述查询后,将产生以下输出 -
********** 1. row ********** Log_name: TP-bin.000111 Pos: 1241 Event_type: Anonymous_Gtid Server_id: 1 End_log_pos: 1320 Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS' ********** 2. row ********** Log_name: TP-bin.000111 Pos: 1320 Event_type: Query Server_id: 1 End_log_pos: 1543 Info: use `xo`; CREATE DEFINER=`root`@`localhost` PROCEDURE `sample4`() BEGIN SELECT 'This is a sample procedure'; END /* xid=12 */ ********** 3. row ********** Log_name: TP-bin.000111 Pos: 1543 Event_type: Stop Server_id: 1 End_log_pos: 1566 Info: 3 rows in set (0.00 sec)
LIMIT 子句
您可以使用 LIMIT 子句在显示时限制日志中的事件数量。
SHOW BINLOG EVENTS IN TP-bin.000113' LIMIT 2\G;
输出
以下是上述查询的输出 -
********** 1. row ********** Log_name: TP-bin.000113 Pos: 4 Event_type: Format_desc Server_id: 1 End_log_pos: 125 Info: Server ver: 8.0.22, Binlog ver: 4 ********** 2. row ********** Log_name: TP-bin.000113 Pos: 125 Event_type: Previous_gtids Server_id: 1 End_log_pos: 156 Info: 2 rows in set (0.00 sec)