Bagaimana cara Log Semua permintaan mysql ke file log?

17

Saya menggunakan Mysql 5.6.12 di bawah lingkungan server Wamp. Sekarang saya ingin mencatat Semua kueri ke dalam file ".log", kueri yang dijalankan oleh PHP atau dari PHPMyAdmin, saya ingin mencatatnya ...

Qazi
sumber

Jawaban:

20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

Perhatikan bahwa mengaktifkan general_logserver produksi memiliki overhead, Anda harus menghindarinya. Anda dapat memeriksa kueri yang bermasalah dari slow log.

Mahesh Patil
sumber
1
Bagi saya, saya harus menggunakan "general_log = 1" bukan "general_log = on".
GuyPaddock
Bekerja pada Wamp Server, menggunakan mysql 5.6.7. Satu-satunya hal yang harus saya ubah adalah jalur ke file tje, dalam kasus saya, C: \ wamp \ logs \ mysql_query.log.
Mário Rodrigues
Mengapa semua nilai konfigurasi ini? Adil general_logdan general_log_filesudah cukup.
laurent
8

Karena ini adalah jenis hal yang Anda mungkin hanya ingin lakukan sementara, mungkin berguna untuk melakukan ini dari shell daripada melalui file konfigurasi:

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";
Xiong Chiamiov
sumber
5

Letakkan dua baris ini di my.cnf.

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

Ini akan mencatat semua permintaan ke server, dari sumber apa pun, bukan hanya PHP / PHPMyAdmin.

Berhati-hatilah - mengaktifkan log umum dapat menempatkan banyak beban pada server Anda. Untuk digunakan hemat hanya untuk periode pendek / debugging saja.

Dokumentasi tersedia di sini . Ke sana kemari:

Untuk menonaktifkan atau mengaktifkan log kueri umum atau mengubah nama file log saat runtime, gunakan variabel global general_log dan general_log_file. Set general_log ke 0 (atau OFF) untuk menonaktifkan log atau ke 1 (atau ON) untuk mengaktifkannya. Set general_log_file untuk menentukan nama file log.

Begitu,

general_log     = on

dan

general_log     = 1

adalah sinonim!

Vérace
sumber
Bagi saya, saya harus menggunakan "general_log = 1" bukan "general_log = on".
GuyPaddock
@GuyPaddock versi MySQL apa yang Anda gunakan?
Vérace