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)

