Tale meccanismo è completamente diverso dal syslog del sistema operativo.
L'impostazione dell'output del log può essere impostata su TABLE, FILE (impostazione predefinita) o NONE
se lo usi
[mysqld]
log-output=TABLE
Ciò causerà la registrazione per il registro generale e / o il registro lento per passare a un file CSV. Puoi convertire quel CSV in MyISAM come segue:
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;
Puoi quindi lasciare che questo file cresca enormemente e dovrai eliminare la tabella ogni tanto. Ecco come eliminare la tabella general_log e conservare gli ultimi 3 giorni:
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;
Che dire del syslog (var / log / messages)? Devi scriverlo tu stesso. Innanzitutto, hai bisogno di questo:
[mysqld]
log
log-ouput=TABLE,FILE
general-log-file=/var/log/mysql-general.log
se si desidera raccogliere il registro generale in entrambi i formati o
[mysqld]
log
general-log-file=/var/log/mysql-general.log
solo per il formato del file.
Ora crea uno script per raccogliere le modifiche in /var/log/general.log. Lo script dovrebbe assomigliare molto a questo:
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
Esegui questo script ogni minuto. Consiglio di troncare il registro generale ogni mezzanotte in questo modo
echo -n > /var/log/mysql-general.log
Provaci !!!