tombo2-progress’s diary

できるだけ毎日1時間を切り取ってここに晒す。誤字脱字気にしない。日本語が崩壊するのも気にしない。最終的にまとめて本ブログに書く

MySQL Packet読んでる

MySQLのパケットはStateを保持して読んでいくのが基本なので、State/Modeがコネクションごとに存在する。 それがよくわかるのが↓で、

MySQL: Connection Lifecycle

ここの図がわかりやすい。

f:id:tom__bo:20180810003525p:plain

更に、Handshakeあたりは

f:id:tom__bo:20180810005304p:plain

こんな感じ。 Authentication exchange continuationは何なんだろう?

現時点で対応する、パラメータ固定にしようと思っているのは、 - Initial_handshakeはバージョン10を想定(HandshakeV9はnot support), Protocol::HandshakeV10 - 圧縮パケットは未定 - SSLはそのうち - HandshakeResponse41のみ対応 (HandshakeResponse320はnot support)

CLIENT_SECURE_CONNECTIONとCLIENT_PLUGIN_AUTHは要検討CLIENT_PLUGIN_AUTHはわかりやすいかも知れない。

Header含め単純なパケットを構造体に落とす構想はできたので、あと若干複雑なパケットを落とし込めば大体のパターンは網羅できそう。