Dalam panduan singkat dan mudah diikuti ini, kami membahas cara mengaktifkan pencatatan kueri MySQL/MariaDB dan menyimpan kueri ke file.
Saat menggunakan database, sering kali pengembang ingin mengetahui apa yang terjadi di balik layar. Baik itu untuk pemecahan masalah, penyetelan performa, atau hanya karena penasaran.
Log kueri umum tetap menjadi salah satu sumber informasi audit dan diagnostik paling populer di database MySQL/MariaDB. Setelah logging diaktifkan, server database akan menulis informasi ke file log ketika klien terhubung atau terputus, dan akan mencatat setiap pernyataan SQL.
Namun, perlu diingat bahwa mengaktifkan log kueri umum memengaruhi kinerja MySQL/MariaDB. Ini akan mengurangi throughput sekitar 13% dan meningkatkan waktu respons dari server MySQL/MariaDB sekitar 17%.
Jadi tanpa basa-basi lagi, mari kita mulai karena prosesnya cukup mudah.
Aktifkan Pencatatan Kueri Umum MySQL/MariaDB
Di MySQL/MariaDB, log kueri umum dinonaktifkan secara default.
1. Masuk ke alat baris perintah server MySQL/MariaDB sebagai root:
mysql -u root -p
2. Setel jalur file log umum ke /var/logs/mysql/general-query.log
dengan mengeksekusi kueri di bawah ini.
SET GLOBAL general_log_file='/var/log/mysql/general-query.log';
Secara default, log kueri umum ditulis dalam direktori data yang sama yang menyimpan subdirektori database itu sendiri (biasanya /var/lib/mysql
) dan nama file log default ke nama host. Namun, seperti yang Anda lihat, ini dapat diubah.
3. Aktifkan log umum server:
SET GLOBAL general_log = 1;
Mari kita periksa lagi status log kueri umum MySQL/MariaDB:
SHOW VARIABLES LIKE "general_log%";
Itu dia. Dari sini Anda dapat melakukan sesuatu yang mirip dengan sudo tail -f
pada general-query.log
file dari baris perintah dan awasi berbagai hal.
Setelah selesai dengan pemeriksaan, Anda dapat menonaktifkan pencatatan kueri MySQL/MariaDB sebagai berikut:
SET GLOBAL general_log = 0;
Tentu saja tidak diinginkan untuk mengaktifkan logging di server produksi. Jadi berhati-hatilah dengan ini, file log bisa menjadi besar dengan sangat cepat.
Jika Anda tidak ingin menjalankan kueri secara langsung, Anda masih dapat mengaktifkan logging kueri MySQL/MariaDB dengan langsung memodifikasi file konfigurasi MySQL/MariaDB, namun perlu diingat bahwa pendekatan ini memerlukan restart server database.
Kesimpulan
Log kueri MySQL/MariaDB umum bisa sangat berguna saat Anda mencurigai adanya kesalahan pada klien dan ingin mengetahui dengan tepat apa yang dikirim klien ke database. Jadi jika Anda memiliki beberapa bug atau masalah dengan database, salah satu cara untuk melacak masalah dalam mengaktifkan log ini, dan memeriksa apa yang terjadi.
Anda dapat membaca selengkapnya tentang mengaktifkan log kueri MySQL/MariaDB umum di sini dan di sini.