Anda memiliki server basis data produksi, dan Anda tidak dapat mengaktifkan pembuatan log ... jadi bagaimana Anda melihat kueri dijalankan terhadap database?
Jawabannya: gunakan sniffer jaringan yang dimodifikasi untuk mem-parse paket-paket MySQL dan memecahkan kode mereka. Anda harus melakukan sedikit kompilasi, tetapi itu akan sia-sia. Perhatikan bahwa ini biasanya tidak akan berfungsi untuk koneksi lokal, meskipun Anda dipersilakan untuk mencoba.
Pertama, Anda perlu menginstal libpcap-dev, yang merupakan pustaka pengembangan yang memungkinkan aplikasi mengendus paket jaringan.
sudo apt-get install libpcap-dev
Sekarang mari buat direktori, unduh kode sumber dan kompilasinya
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
Pada titik ini, kita memiliki executable baru bernama mysqlsniffer yang mengkilap di direktori sumber kami. Anda dapat menyalinnya di mana pun 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 / ke / mysqlsniffer eth0
Banyak barang mulai terbang dengan ... mari kita saring sedikit lebih banyak sehingga kita bisa mendapatkan pertanyaan dan tidak semua data berlebih.
$ sudo / path / ke / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> server: COM_QUERY: PILIH @@ 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: PILIH @@ SQL_MODE
192.168.73.1.1636> server: COM_QUERY: TAMPILKAN KOLOM LENGKAP DARI 'db2842_howto'. 'Wp_users'
Ah, sekarang di sana kita ... segala macam informasi permintaan, tanpa harus me-restart MySQL.
Berikut adalah opsi lengkap untuk perintah:
Penggunaan: mysqlsniffer [OPTIONS] INTERFACE
PILIHAN:
-port N Dengarkan MySQL pada nomor port N (default 3306)
-verbose Tampilkan informasi paket tambahan
-tcp-ctrl Tunjukkan paket kontrol TCP (SYN, FIN, RST, ACK)
-net-hdrs Menampilkan nilai-nilai utama IP dan TCP header
-no-mysql-hdrs Jangan tampilkan header MySQL (ID paket dan panjang)
-state Tampilkan negara
-v40 server MySQL adalah versi 4.0
-dump Dump semua paket dalam hex
-membantu Cetak ini
Kode sumber asli dan informasi lebih lanjut di:
http://hackmysql.com/mysqlsniffer
Jika Anda menjalankan pada server pengembangan, akan lebih mudah untuk hanya mengaktifkan pencatatan log.