वह तंत्र OS syslog से पूरी तरह अलग है।
लॉग-आउटपुट सेट करना या तो टेबल, फ़ाइल (डिफ़ॉल्ट), या एनओएन पर सेट किया जा सकता है
यदि आप इसका उपयोग करते हैं
[mysqld]
log-output=TABLE
यह CSV फ़ाइल में जाने के लिए सामान्य लॉग और / या धीमी लॉग के लिए लॉगिंग का कारण होगा। आप उस CSV को MyISAM में परिवर्तित कर सकते हैं:
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;
फिर आप इस फ़ाइल को जबरदस्त रूप से विकसित कर सकते हैं और आपको हर बार तालिका को शुद्ध करना होगा। यहां बताया गया है कि जनरल_लॉग टेबल को कैसे शुद्ध करें और अंतिम 3 दिन रखें:
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;
Syslog (var / log / संदेश) के बारे में क्या? आपको खुद ही स्क्रिप्ट करनी होगी। सबसे पहले, आपको या तो इसकी आवश्यकता है:
[mysqld]
log
log-ouput=TABLE,FILE
general-log-file=/var/log/mysql-general.log
यदि आप सामान्य लॉग को दोनों स्वरूपों में एकत्र करना चाहते हैं या
[mysqld]
log
general-log-file=/var/log/mysql-general.log
सिर्फ फ़ाइल प्रारूप के लिए।
अब /var/log/general.log में परिवर्तन एकत्र करने के लिए एक स्क्रिप्ट बनाएं। स्क्रिप्ट को इस तरह देखना चाहिए:
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
इस स्क्रिप्ट को हर मिनट चलाएं। मैं इस तरह हर आधी रात को सामान्य लॉग को रौंदने की सलाह देता हूं
echo -n > /var/log/mysql-general.log
कोशिश करो !!!