Anasayfa » nasıl » MySQL Sorgularını Ubuntu'da mysqlsniffer ile izleyin

    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.