आपके पास एक उत्पादन डेटाबेस सर्वर है, और आप क्वेरी लॉगिंग सक्षम नहीं कर सकते हैं … तो आप डेटाबेस के विरुद्ध निष्पादित प्रश्नों को कैसे देखते हैं?
उत्तर: MySQL पैकेट को पार्स करने और उन्हें डीकोड करने के लिए एक संशोधित नेटवर्क स्नफ़फर का उपयोग करें। आपको थोड़ा संकलन करना होगा, लेकिन यह इसके लायक होगा। ध्यान दें कि यह आमतौर पर स्थानीय कनेक्शन के लिए काम नहीं करेगा, हालांकि आपका स्वागत करने के लिए आपका स्वागत है।
सबसे पहले, आपको libpcap-dev इंस्टॉल करना होगा, जो विकास पुस्तकालय है जो एप्लिकेशन को नेटवर्क पैकेट को स्नीफ करने की अनुमति देता है।
sudo apt-get install libpcap-dev
अब चलिए एक निर्देशिका बनाते हैं, स्रोत कोड डाउनलोड करते हैं और इसे संकलित करते हैं
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com/code/mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz
gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
इस बिंदु पर, हमारे पास हमारे स्रोत निर्देशिका में mysqlsniffer नाम का एक चमकदार नया निष्पादन योग्य है। जहां भी आप चाहें इसे कॉपी कर सकते हैं (पथ में कहीं उपयोगी होगा)
Mysqlsniffer को चलाने के लिए, आपको उस नेटवर्क इंटरफ़ेस को निर्दिष्ट करने की आवश्यकता है जिसे MySQL सुन रहा है। मेरे लिए, यह eth0 है।
sudo /path/to/mysqlsniffer eth0
सामानों का भार उड़ना शुरू होता है … आइए इसे थोड़ा और फ़िल्टर करें ताकि हम केवल प्रश्न प्राप्त कर सकें और सभी अतिरिक्त डेटा नहीं।
$ sudo /path/to/mysqlsniffer –no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode 192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=” 192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8 192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE 192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`
आह, अब हम … MySQL को पुनरारंभ किए बिना, सभी प्रकार की क्वेरी जानकारी हैं।
आदेश के लिए पूर्ण विकल्प यहां दिए गए हैं:
उपयोग: mysqlsniffer [विकल्प] इंटरफेस
विकल्प: -पोर्ट एन पोर्ट नंबर एन पर डिफ़ॉल्ट MySQL के लिए सुनो (डिफ़ॉल्ट 3306) -Verbose अतिरिक्त पैकेट जानकारी दिखाएं -Tcp-ctrl टीसीपी नियंत्रण पैकेट दिखाएँ (SYN, फिन, आरएसटी, एसीके) -नेट-एचडीआर प्रमुख आईपी और टीसीपी हेडर मान दिखाएं -No-mysql-hdrs MySQL शीर्षलेख (पैकेट आईडी और लंबाई) न दिखाएं -स्टेट शो राज्य -V40 MySQL सर्वर संस्करण 4.0 है -डम्प हेक्स में सभी पैकेट डंप करें -हेल्प इसे प्रिंट करें
मूल स्रोत कोड और अधिक जानकारी यहां: https://hackmysql.com/mysqlsniffer
यदि आप विकास सर्वर पर चल रहे हैं, तो क्वेरी लॉगिंग चालू करना आसान होगा।