28Jun
Anda punya database server produksi, dan Anda tidak dapat mengaktifkan query logging. .. jadi bagaimana Anda melihat query dieksekusi terhadap database?
Jawabannya: gunakan sniffer jaringan yang dimodifikasi untuk menguraikan paket MySQL dan memecahkan kode mereka. Anda harus melakukan sedikit kompilasi, tapi itu akan sia-sia. Perhatikan bahwa ini biasanya tidak bekerja untuk koneksi lokal, walaupun Anda dipersilakan untuk mencoba.
Pertama, Anda perlu menginstal libpcap-dev, yang merupakan perpustakaan pengembangan yang memungkinkan aplikasi mengendus paket jaringan.
sudo apt-get install libpcap-dev
Sekarang mari kita membuat sebuah direktori, download kode sumber dan kompilasi itu
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com /code/ mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz
gcc -O2 -lpcap-o mysqlsniffer mysqlsniffer.c package_handlers.c misc.c
Pada titik ini, kita memiliki sebuah executable baru yang bisa diklaim bernama mysqlsniffer di direktori source kita. Anda dapat menyalinnya ke manapun Anda suka( di suatu tempat di jalan akan berguna)
Untuk menjalankan mysqlsniffer, Anda perlu menentukan antarmuka jaringan yang sedang didengarkan oleh MySQL.Bagi saya, itu eth0.
sudo /path/to/ mysqlsniffer eth0
Banyak barang mulai diterbangkan. .. mari saring sedikit lagi supaya kita bisa mendapatkan kueri dan tidak semua kelebihan data.
$ sudo /path/to/ mysqlsniffer -no-mysql-hdrs eth0 |grep COM_QUERY
192.168.73.1.2622 & gt;server: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622 & gt;server: COM_QUERY: SET SESSION sql_mode = "
192.168.73.1.2622 & gt;server: COM_QUERY: SET NAMES utf8
192.168.73.1.1636 & gt;server: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636 & gt;server: COM_QUERY: SHOW FULL COLUMNS FROM `db2842_howto`.`wp_users`
Ah, sekarang kita ada. .. segala macam informasi query, tanpa harus me-restart MySQL.
Berikut adalah pilihan lengkap untuk perintah:
Penggunaan: mysqlsniffer [OPTIONS] OPSI INTERFACE
:
-port N Dengarkan MySQL pada nomor port N( default 3306)
-verbose Tampilkan informasi paket tambahan
-tcp-ctrl Tampilkan TCPpaket kontrol( SYN, FIN, RST, ACK)
-net-hdrs Tampilkan nilai utama IP dan TCP header
-no-mysql-hdrs Jangan tampilkan header MySQL( ID dan panjang paket)
-state Tampilkan negara
-v40 MySQLserver adalah versi 4.0
-dump Dump semua paket dalam hex
-help Cetak kode sumber asli
ini dan informasi lebih lanjut di:
http: //hackmysql.com/ mysqlsniffer
Jika Anda menjalankan server pengembangan, akan lebih mudah untuk mengaktifkan permintaan saja.penebangan.