Bir üretim veritabanı sunucunuz var ve sorgu günlüğünü etkinleştiremiyorsunuz… bu nedenle veritabanına karşı yürütülen sorguları nasıl görüyorsunuz?

Cevap: MySQL paketlerini ayrıştırmak ve kodunu çözmek için değiştirilmiş bir ağ algılayıcısını kullanın. Biraz derleme yapmak zorundasın, ama buna değecek. Denemeye razı olsanız da, bunun genellikle yerel bağlantılar için işe yaramayacağını unutmayın.

İlk olarak, bir uygulamanın ağ paketlerini koklamasına izin veren geliştirme kitaplığı olan libpcap-dev'i yüklemeniz gerekir.

sudo apt-get install libpcap-dev

Şimdi bir dizin oluşturalım, kaynak kodunu indirip derleyelim

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

Bu noktada, kaynak dizinimizde mysqlsniffer adında parlak ve yeni bir yürütülebilir dosya var. İstediğiniz yere kopyalayabilirsiniz (yolun herhangi bir yerinde yararlı olabilir)

Mysqlsniffer'ı çalıştırmak için MySQL'in dinlediği ağ arayüzünü belirtmeniz gerekir. Benim için eth0.

sudo /path/to/mysqlsniffer eth0

Bir sürü şey uçmaya başlıyor… biraz daha fazla filtreleyelim, böylece fazla veriyi değil, sorguları alabilelim.

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

192.168.73.1.2622 > server: COM_QUERY: SELECT @@sql_mode192.168.73.1.2622 > server: COM_QUERY: SET SESSION sql_mode=”192.168.73.1.2622 > server: COM_QUERY: SET NAMES utf8192.168.73.1.1636 > server: COM_QUERY: SELECT @@SQL_MODE192.168.73.1.1636 > server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`

Ah, şimdi oradayız… MySQL'i yeniden başlatmaya gerek kalmadan her türlü sorgu bilgisi.

Komut için tam seçenekler şunlardır:

Kullanımı: mysqlsniffer [OPTIONS] INTERFACE

SEÇENEKLER:–Port N Port numarası N'de MySQL'i dinle (varsayılan 3306)–Verbose Ekstra paket bilgisi göster–Tcp-ctrl TCP kontrol paketlerini göster (SYN, FIN, RST, ACK)–Net-hdrs Önemli IP ve TCP başlık değerlerini göster–No-mysql-hdrs MySQL başlığını gösterme (paket kimliği ve uzunluk)–State Durum göster–V40 MySQL sunucusu 4.0 sürümüdür–Dump Tüm paketleri altıya bölün–Help Bunu yazdır

Orijinal kaynak kodu ve daha fazla bilgi:http://hackmysql.com/mysqlsniffer

Bir geliştirme sunucusunda çalışıyorsanız, sorgu günlüğünü açmak daha kolay olur.

En İpuçları:
Yorumlar: