On Tue, Apr 14, 2009 at 8:01 AM, Kay Röpke <kroepke@stripped> wrote:
> On Apr 13, 2009, at 1:10 AM, Eric Bergen wrote:
>> I think wireshark (formerly ethereal) speaks mysql protocol. It may be
>> easier to use that than to write a custom parser for mysql binary
> Definitely. IIRC wireshark can import pcap files and it's much nicer to look
> at than tcpdump output.
> Also, as you point out, it's much easier to use than writing yet another
> protocol implementation.
I've been looking at it. It is very useful indeed, but doesn't quite
suit my needs for a few different reasons.
Alas :-) But hey, what a great debugging tool! It is fantastic.
But more salient -- I need statefulness. What I've written myself
watches for a response, and when it finds it, goes back and looks for
the request that caused it. Now I can find timestamp differences, etc
-- so I can get query timing. The statefulness is the hardest part of
this so far (other than some stupid obvious bug I wrote and had to get
Andrew Aksyonoff's help finding). But I am also painfully aware that
what I've done is just the easy part, and a lot of real world needs
will call for oh, things like understanding compressed protocol or
assembling queries from COM_EXECUTE, for example.
> Baron, please also have a look at the stuff in MySQL Proxy. It contains a
> rather complete protocol encoder/decoder
> and is GPL, too.
> Both Jan and me are interested to put the individual parts of proxy to other
> Grab us at the conference if your are interested, too.
Definitely. Let's talk. Can we pick a time? I'm coming in on Monday
mid-morning and leaving Saturday. Mail me off-list if you know your
calendar well enough to pick a specific time. I think I will also
talk with Eric Day about libdrizzle.
Proxy itself, as cool as it is, has the disadvantage of being the
traffic cop, not just an innocent bystander. I need a bystander.
Somewhere here, we're really close -- we need to pick a little of this
and that, and we'll have something good going on.
The scary thing is, I might be getting close to writing some C or
something. Run for your lives!