Pertama, Ingat bahwa file log ini dapat tumbuh sangat besar di server yang sibuk.
Untuk mysql <5.1.29:
Untuk mengaktifkan log query, menempatkan ini di /etc/my.cnf
dalam [mysqld]
bagian
log = /path/to/query.log #works for mysql < 5.1.29
Juga, untuk mengaktifkannya dari konsol MySQL
SET general_log = 1;
Lihat http://dev.mysql.com/doc/refman/5.1/en/query-log.html
Untuk mysql 5.1.29+
Dengan mysql 5.1.29+, log
opsi ini tidak digunakan lagi. Untuk menentukan file log dan mengaktifkan logging, gunakan ini di my.cnf di [mysqld]
bagian:
general_log_file = /path/to/query.log
general_log = 1
Sebagai alternatif, untuk mengaktifkan pencatatan log dari konsol MySQL (juga harus menentukan lokasi file log, atau menemukan lokasi default):
SET global general_log = 1;
Perhatikan juga bahwa ada opsi tambahan untuk mencatat hanya permintaan yang lambat, atau yang tidak menggunakan indeks.
SET global general_log_file='c:/Temp/mysql.log';
SET global general_log = on;
SET global log_output = 'file';
Lihatlah jawaban ini untuk pertanyaan terkait lainnya. Ini menunjukkan cara mengaktifkan, menonaktifkan, dan melihat log di server langsung tanpa memulai ulang.
Log semua kueri di mysql
Berikut ini ringkasannya:
Jika Anda tidak ingin atau tidak dapat memulai kembali server MySQL, Anda dapat melanjutkan seperti ini di server Anda yang sedang berjalan:
Buat tabel log Anda (lihat jawaban )
Aktifkan Pencatatan kueri pada basis data (Perhatikan bahwa string 'tabel' harus diletakkan secara harfiah dan tidak diganti dengan nama tabel apa pun. Terima kasih Nicholas Pickering )
sumber
Saya menggunakan metode ini untuk mencatat ketika saya ingin mengoptimalkan berbagai halaman dengan cepat. Ini sedikit tip ...
Masuk ke TABEL
Anda kemudian dapat memilih dari menu saya
mysql.general_log
meja untuk mengambil pertanyaan terbaru.Saya kemudian dapat melakukan sesuatu yang mirip dengan
tail -f
di mysql.log, tetapi dengan lebih banyak perbaikan ...Ini membuatnya mudah untuk melihat pertanyaan saya yang dapat saya coba dan kurangi. Saya menggunakan interval 8 detik untuk hanya mengambil kueri yang dieksekusi dalam 8 detik terakhir.
sumber
Ini sudah ada di komentar, tetapi pantas jawabannya sendiri: Tanpa mengedit file konfigurasi: di mysql, sebagai root, lakukan
Jangan lupa untuk mematikannya setelah itu:
sumber
/tmp/
, mungkin berakhir di suatu tempat seperti/tmp/systemd-private-...-mariadb.service-.../tmp/
Anda dapat menonaktifkan atau mengaktifkan log kueri umum (yang mencatat semua kueri)
sumber
Saya juga ingin mengaktifkan file log MySQL untuk melihat kueri dan saya telah menyelesaikan ini dengan instruksi di bawah ini
/etc/mysql/mysql.conf.d
dan mengaktifkan garis di bawah ini
/etc/init.d/mysql restart
/var/log/mysql/
dan periksa logsumber
sumber
Di Windows Anda bisa langsung ke
Masukkan baris ini di my.ini
File my.ini akhirnya terlihat seperti ini
sumber
Ada bug di versi MySQL 5.6. Bahkan mysqld tampil sebagai:
Pengaturan sebenarnya membaca dalam urutan berikut:
Periksa file: "C: \ ProgramData \ MySQL \ MySQL Server 5.6 \ my.ini"
Semoga ini bisa membantu seseorang.
sumber
untuk mysql> = 5,5 hanya untuk permintaan lambat (1 detik dan lebih) my.cfg
sumber
Untuk mengaktifkan log kueri di Mesin MAC:
Buka file berikut:
Setel url log kueri di bawah bagian 'mysqld' sebagai berikut:
Beberapa mesin tidak mencatat kueri dengan benar, sehingga Anda dapat mengaktifkannya dari konsol MySQL
sumber
Bukan jawaban yang tepat untuk pertanyaan itu karena pertanyaan itu sudah memiliki jawaban yang bagus. Ini adalah info sampingan. Mengaktifkan general_log benar-benar mengurangi kinerja MySQL. Saya meninggalkan
general_log =1
server produksi secara tidak sengaja dan menghabiskan waktu berjam-jam mencari tahu mengapa kinerja tidak sebanding dengan pengaturan serupa di server lain. Kemudian saya menemukan ini yang menjelaskan dampak mengaktifkan log umum. http://www.fromdual.com/general_query_log_vs_mysql_performance .Intinya, jangan dimasukkan ke
general_log=1
dalam.cnf
file. Alih-alih gunakanset global general_log =1
untuk jangka waktu singkat hanya untuk mencatat cukup untuk mencari tahu apa yang Anda cari dan kemudian mematikannya.sumber
Di phpMyAdmin 4.0, Anda pergi ke Status> Monitor. Di sana Anda dapat mengaktifkan log kueri lambat dan log umum, melihat monitor langsung, pilih sebagian grafik, lihat kueri terkait dan menganalisisnya.
sumber
Saya harus menjatuhkan dan membuat ulang log umum pada satu titik. Selama rekreasi, rangkaian karakter menjadi kacau dan saya akhirnya mengalami kesalahan ini dalam log:
[ERROR] Incorrect definition of table mysql.general_log: expected the type of column 'user_host' at position 1 to have character set 'utf8' but found character set 'latin1'
Jadi, jika jawaban standar "centang untuk memastikan penebangan aktif" tidak berfungsi untuk Anda, periksa untuk memastikan bidang Anda memiliki rangkaian karakter yang tepat.
sumber