sql >> Database >  >> RDS >> Mysql

Hoe wireshark te gebruiken om mysql-query sql duidelijk vast te leggen?

Je kunt tshark gebruiken en opslaan in een pcap of gewoon de velden exporteren waarin je geïnteresseerd bent.

Om op een pcap op te slaan (als u wireshark wilt gebruiken om later te bekijken):

tshark -i lo -Y "mysql.command==3" -w outputfile.pcap
tshark -i lo -R "mysql.command==3" -w outputfile.pcap
-R is deprecated for single pass filters, but it will depend on your version
-i is interface so replace that with whatever interface you are using (e.g -i eth0)

Om op te slaan in een tekstbestand:

tshark -i lo -Y "mysql.command==3" -T fields -e mysql.query > output.txt

U kunt ook BPF-filters gebruiken met tcpdump (en wireshark pre-cap-filters). Ze zijn complexer, maar minder belastend voor uw systeem als u veel verkeer vastlegt.

sudo tcpdump -i lo "dst port 3306 and  tcp[(((tcp[12:1]&0xf0)>>2)+4):1]=0x03" -w outputfile.pcap

OPMERKING:
*Dit zoekt naar 03 (vergelijkbaar met mysql.command==3) binnen de TCP-payload.
**Omdat dit een vrij losse filter is, heb ik ook 3306 toegevoegd om te beperken tot alleen verkeer dat bestemd is voor die poort.***Het filter is gebaseerd op uw screenshot. Ik kan het nu niet valideren, dus laat het me weten als het niet werkt.

Voorbeelduitvoer:



  1. Schakel waarschuwingen en fouten uit in PHP en MySQL

  2. MySQL selecteer een veld uit de tabel WAAR de voorwaarde in meerdere rijen staat

  3. Traag zoeken door indexquery LIKE% MYSQL

  4. Multi-Statement TVF's in Dynamics CRM