Important! This is an automatic machine translated page. If you can read english, you should Click Here to read the original English version of the article.

Track MySQL Queries with mysqlsniffer on Ubuntu Track MySQL Queries z mysqlsniffer na Ubuntu

You've got a production database server, and you can't enable query logging… so how do you see the queries being executed against the database? You've got podatkovni strežnik proizvodnje, in ne morete omogočiti poizvedbe sečnji ... torej kako vidite trenutno izvaja poizvedbe nad bazo podatkov?

The answer: use a modified network sniffer to parse out the MySQL packets and decode them. Odgovor: uporaba spremenjenih omrežje sniffer v razčleniti iz MySQL pakete in jih dešifrirati. You'll have to do a little compiling, but it'll be worth it. Boste morali narediti malo priprave, vendar se bo to vredno. Note that this will not usually work for local connections, although you are welcome to try. Upoštevajte, da to ne bo običajno delo za lokalne povezave, čeprav vas vabimo, da poskusite.

First, you need to install libpcap-dev, which is the development library that allows an application to sniff network packets. Najprej morate namestiti libpcap-dev, ki je razvojno knjižnico, ki omogoča uporabo omrežja v vohanje paketov.

sudo apt-get install libpcap-dev sudo apt-get namestite libpcap-dev

Now let's make a directory, download the source code and compile it Zdaj pa lahko imenik, prenesete izvorno kodo in jo pripravijo

mkdir mysqlsniffer mkdir mysqlsniffer

cd mysqlsniffer cd mysqlsniffer

wget hackmysql.com/code/mysqlsniffer.tgz wget hackmysql.com / code / mysqlsniffer.tgz

tar xvfz mysqlsniffer.tgz tar xvfz mysqlsniffer.tgz

gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c gcc-O2-lpcap-o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c

At this point, we have a shiny new executable named mysqlsniffer in our source directory. Na tej točki smo bleščečo novo izvršljiv imenovan mysqlsniffer v naš vir imeniku. You can copy it wherever you like (somewhere in the path would be useful) Lahko kopirate, kjer vam je všeč (nekje na poti bi bilo koristno)

To run mysqlsniffer, you need to specify the network interface that MySQL is listening on. Če želite zagnati mysqlsniffer, morate navesti omrežni vmesnik, da MySQL je na poslušanje. For me, it's eth0. Za mene, je eth0.

sudo /path/to/mysqlsniffer eth0 sudo / pot / do / mysqlsniffer eth0

Loads of stuff starts flying by… let's filter it out a little more so we can just get the queries and not all the excess data. Veliko stvari se začne letijo ... let's filter ven malo več, da bomo lahko šele zaslužiti poizvedb in ne vseh presežek podatkov.

$ sudo /path/to/mysqlsniffer –no-mysql-hdrs eth0 | grep COM_QUERY $ Sudo / pot / do / mysqlsniffer-no-mysql-hdrs eth0 | grep COM_QUERY

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode 192.168.73.1.2622> strežnik: COM_QUERY: SELECT @ @ sql_mode
192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=” 192.168.73.1.2622> strežnik: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8 192.168.73.1.2622> strežnik: COM_QUERY: SET IMENA utf8
192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE 192.168.73.1.1636> strežnik: COM_QUERY: SELECT @ @ SQL_MODE
192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users` 192.168.73.1.1636> strežnik: COM_QUERY: FULL SHOW stolpce iz `db2842_howto`. "Wp_users`

Ah, now there we are… all sorts of query information, without having to restart MySQL. Ah, zdaj pa smo ... vse vrste informacij poizvedbe, ne da bi morali zopet začeti MySQL.

Here are the full options for the command: Tu je polno možnosti za ukaz:

Usage: mysqlsniffer [OPTIONS] INTERFACE Uporaba: mysqlsniffer [OPTIONS] INTERFACE

OPTIONS: OPTIONS:
–port N Listen for MySQL on port number N (default 3306) N-port Listen za MySQL na številko vrat N (privzeto 3306)
–verbose Show extra packet information -Verbose Pokaži dodatne paketne podatke
–tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK) -Tcp-ctrl Prikaži nadzor paketov TCP (SYN, FIN, RST, ACK)
–net-hdrs Show major IP and TCP header values -Net-hdrs Prikaži večje vrednosti IP in TCP header
–no-mysql-hdrs Do not show MySQL header (packet ID and length) -No-mysql-hdrs Ne prikaži MySQL glave (paketni ID in dolžina)
–state Show state -State Prikaži stanje
–v40 MySQL server is version 4.0 -V40 MySQL strežnik je različica 4,0
–dump Dump all packets in hex -Smetišče smetišče vse pakete v hex
–help Print this -Help Print this

Original source code and more information at: Original izvorno kodo in več informacij na:
http://hackmysql.com/mysqlsniffer http://hackmysql.com/mysqlsniffer

If you are running on a development server, it would be easier to just Če imate nameščen na strežniku razvoj, bi bilo lažje, da samo turn on query logging Vklop query logging . .

This article was originally written on 05/25/07 Tagged with: Ta članek je bil prvotno napisan na 05/25/07 Tagged with: Ubuntu Ubuntu

Daily Email Updates Dnevni Email Updates

You can get our how-to articles in your inbox each day for free. Lahko dobite našo kako do člankov v vašo mapo »Prejeto vsak dan brezplačno. Just enter your name and email below: Preprosto vpišite vaše ime in e-pošto spodaj:


Name: Ime:
Email: E-pošta:

Our Friends Naši prijatelji
Getting Started Getting Started


About How-To Geek O Kako naj Geek
What Is That Process? Kaj je to proces?
svchost.exe svchost.exe
jusched.exe jusched.exe
dwm.exe dwm.exe
ctfmon.exe Ctfmon.exe
wmpnetwk.exe wmpnetwk.exe
mDNSResponder.exe mDNSResponder.exe
wmpnscfg.exe wmpnscfg.exe
rundll32.exe rundll32.exe
wfcrun32.exe wfcrun32.exe
Ipoint.exe Ipoint.exe
Itype.exe Itype.exe
Wfica32.exe Wfica32.exe
Mobsync.exe Mobsync.exe
conhost.exe conhost.exe
Dpupdchk.exe Dpupdchk.exe Adobe_Updater.exe Adobe_Updater.exe

Copyright © 2006-2009 HowToGeek.com. Copyright © 2006-2009 HowToGeek.com. All Rights Reserved. All Rights Reserved.