Track MySQL Queries with mysqlsniffer on Ubuntu ट्रैक MySQL Ubuntu पर 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. जवाब: एक बार संशोधित नेटवर्क का उपयोग करने से 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 स्थापित-देव, जो विकास के पुस्तकालय है कि एक आवेदन नेटवर्क पैकेट सूंघ करने की अनुमति देता है की जरूरत है.
sudo apt-get install libpcap-dev उपयुक्त sudo-मिल libpcap स्थापित-dev
Now let's make a directory, download the source code and compile it अब चलो एक निर्देशिका बनाने के लिए स्रोत कोड को डाउनलोड करने और इसे संकलन
mkdir mysqlsniffer mkdir mysqlsniffer
cd mysqlsniffer सीडी mysqlsniffer
wget hackmysql.com/code/mysqlsniffer.tgz wget hackmysql.com / कोड / mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz राल xvfz mysqlsniffer.tgz
gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c जीसीसी-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 / रास्ता / के लिए / eth0 mysqlsniffer
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: sql_mode @ @ का चयन करें
192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=” 192.168.73.1.2622> सर्वर: COM_QUERY: सेट सत्र sql_mode = "
192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8 192.168.73.1.2622> सर्वर: COM_QUERY: सेट नाम utf8
192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE 192.168.73.1.1636> सर्वर: COM_QUERY: @ @ 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: सम्पूर्ण COLUMNS से `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: विकल्प हैं:
–port N Listen for MySQL on port number N (default 3306) -पोर्ट एन एन पोर्ट संख्या पर MySQL के लिए सुनो (3,306 डिफ़ॉल्ट)
–verbose Show extra packet information शो अतिरिक्त जानकारी पैकेट वर्बोज
–tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK) -TCP-Ctrl दिखाएँ टीसीपी नियंत्रण के पैकेट (SYN, पंख, RST, ACK)
–net-hdrs Show major IP and TCP header values नेट-hdrs दिखाएँ प्रमुख आईपी और टीसीपी शीर्षक मूल्यों
–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 -डंप डाल दो हेक्स के सभी पैकेट
–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 प्रवेश प्रश्न पर बारी . .

Daily Email Updates दैनिक ईमेल अपडेट
You can get our how-to articles in your inbox each day for free. आप अपने इनबॉक्स में हमारे कैसे लेख को मुफ्त के लिए प्रत्येक दिन प्राप्त कर सकते हैं. Just enter your name and email below: बस नीचे अपना नाम और ईमेल दर्ज करें:


