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)
广告

© . All rights reserved.