Saya mengikuti instruksi di sini: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/ tetapi itu tampaknya hanya mengatur ambang batas.
Apakah saya perlu melakukan hal lain seperti mengatur jalur file?
Menurut dokumen MySQL
Jika tidak ada nilai nama_file yang diberikan untuk --log-slow-queries, nama defaultnya adalah host_name-slow.log. Server membuat file di direktori data kecuali nama path absolut diberikan untuk menentukan direktori yang berbeda.
Lari
TAMPILKAN VARIABEL
tidak menunjukkan jalur file log dan saya tidak melihat file log kueri yang lambat di server saya ...
EDIT
Sepertinya saya menggunakan server versi 5.0.77, jadi saya perlu melakukan:
SETEL GLOBAL log_slow_queries = 1;
tetapi saya mendapatkan: ERROR 1238 (HY000): Variabel 'log_slow_queries' adalah variabel hanya baca
Saya berasumsi bahwa saya perlu me-restart server dan menyetel log_slow_queries di konfigurasi saya?
Jawaban:
Coba
SET GLOBAL slow_query_log = 'ON';
dan mungkinFLUSH LOGS;
Ini mengasumsikan Anda menggunakan MySQL 5.1 atau yang lebih baru. Jika Anda menggunakan versi sebelumnya, Anda harus memulai ulang server. Ini didokumentasikan dalam Manual MySQL . Anda dapat mengkonfigurasi log baik di file konfigurasi atau di baris perintah.
sumber
SET GLOBAL slow_query_log = 'OFF';
bekerja seperti yang diharapkan, juga.FLUSH LOGS
tidak diperlukan dalam kedua kasus tersebut.Untuk kueri lambat pada versi <5.1, konfigurasi berikut berfungsi untuk saya:
Perhatikan juga untuk meletakkannya di bawah
[mysqld]
bagian dari file konfigurasi dan restartmysqld
.sumber
sudo mkdir /var/log/mysql
sudo touch /var/log/mysql/slow-query.log
sudo chown -R _mysql /var/log/mysql/
log_slow_queries
sudah tidak digunakan lagi di MySQL 5.1.29 olehslow-query-log
. The 5.1 Reference Manual MySQL memiliki rincian lebih lanjut.Temukan log diaktifkan atau tidak?
SHOW VARIABLES LIKE '%log%';
Setel log: -
SET GLOBAL general_log = 'ON'; SET GLOBAL slow_query_log = 'ON';
sumber
Manual MySQL - file-log-kueri-lambat
Ini mengklaim bahwa Anda dapat menjalankan perintah berikut untuk mengatur file log lambat (5.1.6 dan seterusnya):
set global slow_query_log_file = 'path';
Variabel slow_query_log hanya mengontrol apakah itu diaktifkan atau tidak.
sumber
Pekerjaan ini
SET GLOBAL LOG_SLOW_TIME = 1; SET GLOBAL LOG_QUERIES_NOT_USING_INDEXES = ON;
Rusak pada penyiapan saya 5.1.42
SET GLOBAL LOG_SLOW_QUERIES = ON; SET GLOBAL SLOW_QUERY_LOG = ON; set @@global.log_slow_queries=1;
http://bugs.mysql.com/bug.php?id=32565
Sepertinya cara terbaik untuk melakukannya adalah dengan menyetel log_slow_time sangat tinggi sehingga "mematikan" log kueri yang lambat. Turunkan log_slow_time untuk mengaktifkannya. Gunakan trik yang sama (setel ke OFF) untuk log_queries_not_using_indexes.
sumber
Saya pikir masalahnya adalah memastikan bahwa server MySQL memiliki hak atas file tersebut dan dapat mengeditnya.
Jika Anda bisa mendapatkan akses ke file, maka Anda dapat mencoba pengaturan:
SET GLOBAL slow_query_log = 1;
Jika tidak, Anda selalu dapat 'memuat ulang' server setelah mengubah file konfigurasi. Biasanya di linux
/etc/init.d/mysql reload
sumber
Jika Anda ingin mengaktifkan log kesalahan umum dan log kesalahan kueri lambat di tabel, bukan file
Untuk mulai masuk ke tabel alih-alih file:
set global log_output = “TABLE”;
Untuk mengaktifkan log kueri umum dan lambat:
set global general_log = 1; set global slow_query_log = 1;
Untuk melihat log:
select * from mysql.slow_log; select * from mysql.general_log;
Untuk lebih jelasnya kunjungi tautan ini
http://easysolutionweb.com/technology/mysql-server-logs/
sumber
Ini harus bekerja pada mysql> 5.5
sumber