Bu mekanizma işletim sistemi sistem günlüğünden tamamen farklıdır.
Günlük çıktısının ayarlanması TABLO, DOSYA (varsayılan) veya YOK olarak ayarlanabilir
bunu kullanırsan
[mysqld]
log-output=TABLE
Bu, genel günlük ve / veya yavaş günlük günlüğünün CSV dosyasına gitmesine neden olur. Bu CSV'yi MyISAM'a aşağıdaki gibi dönüştürebilirsiniz:
SET @old_log_state = @@global.general_log;
SET GLOBAL general_log = 'OFF';
ALTER TABLE mysql.general_log ENGINE = MyISAM;
ALTER TABLE mysql.general_log ADD INDEX (event_time);
SET GLOBAL general_log = @old_log_state;
Daha sonra bu dosyanın muazzam bir şekilde büyümesine izin verebilirsiniz ve tabloyu sık sık temizlemeniz gerekir. General_log tablosunu nasıl temizleyeceğiniz ve son 3 günü nasıl tutacağınız aşağıda açıklanmıştır:
SET @old_log_state = @@global.general_log;
SET GLOBAL general_log = 'OFF';
CREATE TABLE mysql.general_log_new LIKE mysql.general_log;
INSERT INTO mysql.general_log_new
SELECT * FROM mysql.general_log WHERE event_time > NOW() - INTERVAL 3 DAY;
DROP TABLE mysql.general_log;
ALTER TABLE mysql.general_log_new RENAME mysql.general_log;
SET GLOBAL general_log = @old_log_state;
Sistem günlüğü (var / log / messages) ne olacak? Bunu kendiniz yazmalısınız. İlk olarak, şunlara ihtiyacınız vardır:
[mysqld]
log
log-ouput=TABLE,FILE
general-log-file=/var/log/mysql-general.log
Genel günlüğü her iki biçimde de toplamak istiyorsanız veya
[mysqld]
log
general-log-file=/var/log/mysql-general.log
sadece dosya biçimi için.
Şimdi /var/log/general.log 'daki değişiklikleri toplamak için bir komut dosyası oluşturun. Komut dosyası şöyle görünmelidir:
NEWCOUNT=`wc -l < /var/log/mysql-general.log`
if [ -f /tmp/general-log-lines.txt ]
then
OLDCOUNT=`cat /tmp/general-log-lines.txt`
if [ ${OLDCOUNT} -lt ${NEWCOUNT} ]
then
DIFF=`echo ${NEWCOUNT}-${OLDCOUNT}|bc`
tail -${DIFF} < /var/log/mysql-general.log >> /var/log/messages
echo ${NEWCOUNT} > /tmp/general-log-lines.txt
fi
fi
Bu komut dosyasını her dakika çalıştırın. Genel günlüğün her gece yarısı bu şekilde kesilmesini öneriyorum
echo -n > /var/log/mysql-general.log
Bir şans ver !!!