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 לעקוב אחר מספר השאילתות MySQL עם mysqlsniffer על אובונטו

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? יש לך שרת באתר הייצור, ואתה לא יכול להפעיל שאילתה שתיכנס ... אז איך אתה רואה את הוצאתו להורג נגד שאילתות בבסיס הנתונים?

The answer: use a modified network sniffer to parse out the MySQL packets and decode them. התשובה: שימוש ברשת Modified המריח לנתח את מנות MySQL ו לפענח אותם. You'll have to do a little compiling, but it'll be worth it. תצטרך לעשות קצת קומפילציה, אבל זה יהיה שווה את זה. Note that this will not usually work for local connections, although you are welcome to try. שים לב כי בדרך כלל זה לא עובד עבור חיבורים מקומיים, אם כי אתה מוזמן לנסות.

First, you need to install libpcap-dev, which is the development library that allows an application to sniff network packets. ראשית, עליך להתקין libpcap-dev, המהווה את ספריית הפיתוח המאפשר יישום לרחרח מנות הרשת.

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

Now let's make a directory, download the source code and compile it עכשיו בוא נעשה ספרייה, להוריד את קוד המקור ולעבד את זה

mkdir mysqlsniffer mysqlsniffer mkdir

cd mysqlsniffer mysqlsniffer CD

wget hackmysql.com/code/mysqlsniffer.tgz hackmysql.com wget / קוד / mysqlsniffer.tgz

tar xvfz mysqlsniffer.tgz mysqlsniffer.tgz xvfz זפת

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. בנקודה זו, יש לנו מבריק mysqlsniffer הפעלה חדשה בשם המקור בספרייה שלנו. You can copy it wherever you like (somewhere in the path would be useful) אתה יכול להעתיק אותו בכל מקום שתרצה (איפשהו בדרך יהיה מועיל)

To run mysqlsniffer, you need to specify the network interface that MySQL is listening on. כדי להפעיל mysqlsniffer, אתה צריך לציין את ממשק הרשת כי MySQL הוא מאזין. For me, it's eth0. בשבילי, זה eth0.

sudo /path/to/mysqlsniffer eth0 sudo / path / to / 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. המון דברים מתחיל לטוס על ידי ... בוא לסנן את זה קצת יותר כדי שנוכל לקבל רק את השאילתות ולא כל הנתונים עודף.

$ sudo /path/to/mysqlsniffer –no-mysql-hdrs eth0 | grep COM_QUERY נתיב $ sudo / / אל / mysqlsniffer-no-MySQL-hdrs eth0 | grep COM_QUERY

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode 192.168.73.1.2622> שרת: COM_QUERY: SELECT @ @ sql_mode
192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=” 192.168.73.1.2622> שרת: COM_QUERY: Set sql_mode SESSION = "
192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8 192.168.73.1.2622> שרת: COM_QUERY: SET NAMES utf8
192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE 192.168.73.1.1636> שרת: 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> שרת: COM_QUERY: Show full עמודות `db2842_howto`. Wp_users ``

Ah, now there we are… all sorts of query information, without having to restart MySQL. אה, עכשיו יש לנו ... כל מיני פרטים שאילתה, מבלי להפעיל מחדש את MySQL.

Here are the full options for the command: הנה מלא אפשרויות עבור הפקודה:

Usage: mysqlsniffer [OPTIONS] INTERFACE השימוש: mysqlsniffer [OPTIONS] INTERFACE

OPTIONS: אפשרויות:
–port N Listen for MySQL on port number N (default 3306) N-יציאת שמע עבור MySQL על מספר היציאה N (ברירת מחדל 3306)
–verbose Show extra packet information Verbose-הצג מידע נוסף מנות
–tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK) -TCP-CTRL מנות TCP שליטה הצג (SYN, FIN, RST, ACK)
–net-hdrs Show major IP and TCP header values -Net-IP הגדולים hdrs הצג וערכים TCP כותרת
–no-mysql-hdrs Do not show MySQL header (packet ID and length) -No-MySQL-hdrs אל תציג כותרת MySQL (מזהה החבילה אורך)
–state Show state מדינת הצג המדינה
–v40 MySQL server is version 4.0 -V40 שרת MySQL הוא גרסה 4.0
–dump Dump all packets in hex -Dump Dump כל מנות hex
–help Print this עזרה הדפס

Original source code and more information at: קוד המקור המקורי ומידע נוסף בבית:
http://hackmysql.com/mysqlsniffer http://hackmysql.com/mysqlsniffer

If you are running on a development server, it would be easier to just אם אתה משתמש בשרת פיתוח, זה יהיה קל יותר פשוט turn on query logging להפעיל את השאילתה כניסה . .

This article was originally written on 05/25/07 Tagged with: מאמר זה נכתב במקור ב 05/25/07 עם שתייגת: Ubuntu Ubuntu

Daily Email Updates שערי עדכונים בדוא"ל

You can get our how-to articles in your inbox each day for free. אתה יכול לקבל כמה שלנו למאמרים לתיבת הדואר שלך בכל יום בחינם. Just enter your name and email below: פשוט להזין את שם ואת הדוא"ל שלך להלן:


Name: שם:
Email: דואר אלקטרוני:

Our Friends חברים שלנו
Getting Started התחלת העבודה


About How-To Geek אודות How-To Geek
What Is That Process? מה זה תהליך?
svchost.exe svchost.exe
jusched.exe jusched.exe
dwm.exe dwm.exe
ctfmon.exe Ctfmon.exe
wmpnetwk.exe wmpnetwk.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. זכויות יוצרים © 2006-2009 HowToGeek.com. All Rights Reserved. כל הזכויות שמורות.