mysqlbinlog主要流程:
main函数:
dump_multiple_logs: 处理所有的binlog文件
注意PRINT_EVENT_INFO print_event_info; 该变量描述了mysqlbinlog打印event的方法,ev->print函数的参数
循环调用dump_single_log函数:注意最后一个binlog文件的strop_postition的结束位置
dump_local_log_entries:解析一个本地binlog文件
check_header: 读取binlog文件的第一个事件Format_description_log_event,该事件的信息对整个binlog文件的解析有用
文件的前4个字节数值固定,校验文件是否正确
调用Log_event::read_log_event函数(见后文分析)读取FORMAT_DESCRIPTION_EVENT事件
根据需要打印FORMAT_DESCRIPTION_EVENT事件的内容
while循环:
调用Log_event::read_log_event函数(见后文分析)读取事件
process_e