リモートサーバーMysql
を使用して開発しているため、ローカルサーバーを使用している場合は簡単にクエリーSQLを確認できないため、を実行して、そこで私はwireshark
をインストールして、これらのクエリSQLをローカルから送信するようにしました。最初に、ローカルのmysqlを使って検証します。wiresharkを使用してmysql query sqlを明確に取得する方法
が、私はmysqlの端末に2つのクエリのSQLを実行している
select version();
select now();
が、私は、私はこれらのみ4を発見した のwiresharkでこれらの2つのSQLのパケットを見つけることができません非常に残念パケット。
しかし、私はあなただけのフィルター「のmysql」または使用mysqlのパケットフィルタリングするに
を知っていた「mysql.queryを!= 『』」あなただけのクエリを要求するパケットをしたいときのポストから。その後、フィールド名 'mysql.query'を持つカスタム列を追加して、実行された場所の一覧を表示することができます。
とそれだけでクエリのSQLをキャプチャするために便利だし、非常に明確にこれらのクエリのSQLを表示 、このような効果があります。では、これを実装するには、どうすればwireshark
を使うことができますか?
ハイテク@Jeff S.
私はあなたのコマンドを試してみました、
#terminal 1
tshark -i lo0 -Y "mysql.command==3"
Capturing on 'Loopback'
# terminal 2
mysql -h127.0.0.1 -u root -p
select version();
#result: nothing output in terminal 1
とtshark -i lo0 -Y "mysql.command==3" -T fields -e mysql.query
tshark -i lo -Y "mysql.command==3"
も何も出力と同じである参照してください。しかし、私は唯一の
tshark -i lo0
を使用している場合、それはあなたがtsharkのを使用してPCAPに保存したり、ちょうどあなたが興味を持っているフィールドをエクスポートすることができます。
のpcapに保存する(したい場合は、出力
Capturing on 'Loopback'
1 0.000000 127.0.0.1 -> 127.0.0.1 TCP 68 57881 → 3306 [SYN] Seq=0 Win=65535 Len=0 MSS=16344 WS=32 TSval=1064967501 TSecr=0 SACK_PERM=1
2 0.000062 127.0.0.1 -> 127.0.0.1 TCP 68 3306 → 57881 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=16344 WS=32 TSval=1064967501 TSecr=1064967501 SACK_PERM=1
3 0.000072 127.0.0.1 -> 127.0.0.1 TCP 56 57881 → 3306 [ACK] Seq=1 Ack=1 Win=408288 Len=0 TSval=1064967501 TSecr=1064967501
4 0.000080 127.0.0.1 -> 127.0.0.1 TCP 56 [TCP Window Update] 3306 → 57881 [ACK] Seq=1 Ack=1 Win=408288 Len=0 TSval=1064967501 TSecr=1064967501
...
これはまさにそれを行う必要があります。これをフィルタに入力するとどうなりますか?表示列はフィルタによって変更されます。 – Solarflare