forked from lostz/MySQLBinlogProtocol
-
Notifications
You must be signed in to change notification settings - Fork 0
/
protocol.aux
87 lines (87 loc) · 7.57 KB
/
protocol.aux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand*\HyPL@Entry[1]{}
\HyPL@Entry{0<</S/D>>}
\HyPL@Entry{1<</S/D>>}
\@writefile{toc}{\contentsline {section}{\numberline {1}概述}{3}{section.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}基础类型}{3}{subsection.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}整数类型}{3}{subsubsection.1.1.1}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {1.1.1.1}定长整数}{3}{paragraph.1.1.1.1}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {1.1.1.2}变长整数}{4}{paragraph.1.1.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}String类型}{4}{subsubsection.1.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}MySQL包}{4}{subsection.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.1}大于16MB的包}{5}{subsubsection.1.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.2}序列号}{5}{subsubsection.1.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}通用响应包}{5}{subsection.1.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.3.1}OR\_Packet}{5}{subsubsection.1.3.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.3.2}ERR\_Packet}{6}{subsubsection.1.3.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.3.3}EOF\_Packet}{6}{subsubsection.1.3.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.3.4}状态信息}{6}{subsubsection.1.3.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}连接的生命周期}{7}{subsection.1.4}}
\@writefile{toc}{\contentsline {section}{\numberline {2}连接建立}{8}{section.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}握手}{9}{subsection.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}普通握手方式}{9}{subsubsection.2.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}SSL握手方式}{10}{subsubsection.2.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.3}能力交换}{10}{subsubsection.2.1.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.4}选择认证方法}{10}{subsubsection.2.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}快速认证}{11}{subsection.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}认证方法不一致}{11}{subsection.2.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}更换认证方法}{12}{subsubsection.2.3.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}客户端能力缺失}{12}{subsubsection.2.3.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.3}客户端不支持新认证方法}{13}{subsubsection.2.3.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.4}不支持插件式认证方法的客户端}{13}{subsubsection.2.3.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}连接阶段消息包结构}{13}{subsection.2.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}Protocol::Handshake}{13}{subsubsection.2.4.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.2}Protocol::HandshakeResponse}{15}{subsubsection.2.4.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3}文本协议}{16}{section.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}COM\_QUERY}{16}{subsection.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}COM\_QUERY\_RESPONSE}{17}{subsection.3.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}列定义}{18}{subsubsection.3.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}行数据}{19}{subsubsection.3.2.2}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Binlog}{20}{section.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}什么是Binlog}{20}{subsection.4.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Binlog格式}{21}{subsubsection.4.1.1}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {4.1.1.1}基于语句的Binlog}{21}{paragraph.4.1.1.1}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {4.1.1.2}基于行的Binlog}{22}{paragraph.4.1.1.2}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {4.1.1.3}混合模式的binlog}{22}{paragraph.4.1.1.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}启用Binlog}{22}{subsubsection.4.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Binlog结构与内容小结}{24}{subsubsection.4.1.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Binlog事件}{24}{subsection.4.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}事件定义}{24}{subsubsection.4.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}事件描述}{26}{subsubsection.4.2.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}事件结构}{27}{subsubsection.4.2.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}FORMAT\_DESCRIPTION\_EVENT}{27}{subsubsection.4.2.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.5}ROTATE\_EVENT}{28}{subsubsection.4.2.5}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.6}TABLE\_MAP\_EVENT}{28}{subsubsection.4.2.6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.7}ROWS\_EVENT}{29}{subsubsection.4.2.7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}监听流程}{30}{subsection.4.3}}
\@writefile{toc}{\contentsline {section}{\numberline {5}代码实现(基于Golang)}{32}{section.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}模块布局}{32}{subsection.5.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}上下文管理}{33}{subsection.5.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Packet读写}{34}{subsection.5.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}pktReader}{35}{subsubsection.5.3.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}pktWriter}{36}{subsubsection.5.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}编解码}{38}{subsection.5.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}数据库连接}{39}{subsection.5.5}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.1}握手阶段}{40}{subsubsection.5.5.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.2}认证阶段}{40}{subsubsection.5.5.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Binlog事件监听}{43}{subsection.5.6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.6.1}事件头解析}{43}{subsubsection.5.6.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.6.2}FORMAT\_DESCRIPTION\_EVENT}{43}{subsubsection.5.6.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.6.3}QUERY\_EVENT}{44}{subsubsection.5.6.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.6.4}TABLE\_MAP\_EVENT}{45}{subsubsection.5.6.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.6.5}ROWS\_EVENT}{46}{subsubsection.5.6.5}}