MySQL Sorgularını Ubuntu'da mysqlsniffer ile izleyin
Bir üretim veritabanı sunucunuz var ve sorgu günlüğünü etkinleştiremiyorsunuz… öyleyse veritabanına karşı yürütülen sorguları nasıl görüyorsunuz??
Cevap: MySQL paketlerini çözümlemek ve kodlarını çözmek için değiştirilmiş bir ağ dinleyicisi kullanın. Biraz derleme yapmanız gerekecek, ancak buna değecek. Bunun genellikle yerel bağlantılar için işe yaramayacağını unutmayın;.
Öncelikle, bir uygulamanın ağ paketlerini taramasına izin veren geliştirme kütüphanesi olan libpcap-dev'i kurmanız gerekir..
sudo apt-get install libpcap-dev
Şimdi bir dizin yapalım, kaynak kodu 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 yeni ve parlak bir dosya çalıştırılabilir. İstediğiniz yere kopyalayabilirsiniz (yolun bir yerinde faydalı olabilir)
Mysqlsniffer komutunu çalıştırmak için MySQL'in dinlediği ağ arayüzünü belirtmeniz gerekir. Benim için bu eth0.
sudo / path / to / mysqlsniffer eth0
Bir sürü şey uçmaya başlıyor… hadi biraz daha filtreleyelim ki tüm sorguları değil sadece sorguları alabilelim..
$ sudo / yol / için / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> sunucu: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> sunucu: COM_QUERY: SET SESSION sql_mode = ”
192.168.73.1.2622> sunucu: COM_QUERY: SET ADLARI utf8
192.168.73.1.1636> sunucu: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> sunucu: COM_QUERY: 'db2842_howto' den '' TAM SÖZLÜK GÖSTER ".
Ah, şimdi oradayız… MySQL'i yeniden başlatmak zorunda kalmadan her türlü sorgu bilgisini.
İşte komut için tam seçenekler:
Kullanım: mysqlsniffer [SEÇENEKLER] ARAYÜZ
SEÇENEKLER:
-N bağlantı noktası N bağlantı noktasında MySQL'i dinleyin (varsayılan 3306)
-Ayrıntılı paket bilgisi göster
-tcp-ctrl TCP kontrol paketlerini göster (SYN, FIN, RST, ACK)
-net-hdrs Başlıca IP ve TCP başlık değerlerini göster
-no-mysql-hdrs MySQL başlığını gösterme (paket kimliği ve uzunluğu)
-devlet göster devlet
-v40 MySQL sunucusu 4.0 sürümüdür.
-Tüm paketleri hex'e dök.
-yardım et 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çmanız daha kolay olur.