जनरल क्वेरी लॉग सक्षम करना
MySQL का जनरल लॉग सभी कनेक्ट/डिस्कनेक्ट और निष्पादित SQL स्टेटमेंट्स रिकॉर्ड करता है। डीबगिंग और ऑडिटिंग के लिए उपयोगी।
वर्तमान स्थिति जांचना
mysql> SHOW VARIABLES LIKE '%general_log%';
+------------------+---------------------+ | Variable_name | Value | +------------------+---------------------+ | general_log | OFF | | general_log_file | DESKTOP-QN2RB3H.log | +------------------+---------------------+ 2 rows in set (0.06 sec)
जनरल लॉग चालू करना
mysql> SET GLOBAL general_log = ON; Query OK, 0 rows affected (0.18 sec)
फिर से स्थिति जांचना
mysql> SHOW VARIABLES LIKE '%general_log%';
+------------------+---------------------+ | Variable_name | Value | +------------------+---------------------+ | general_log | ON | | general_log_file | DESKTOP-QN2RB3H.log | +------------------+---------------------+ 2 rows in set (0.01 sec)
लॉग फाइल स्थान बदलना
mysql> SET GLOBAL general_log_file = 'E:\\mysqllog'; Query OK, 0 rows affected (0.11 sec)
mysql> SHOW VARIABLES LIKE '%general_log%';
+------------------+------------+ | Variable_name | Value | +------------------+------------+ | general_log | ON | | general_log_file | E:mysqllog | +------------------+------------+ 2 rows in set (0.01 sec)
कॉन्फिगरेशन फाइल में स्थायी सेटिंग
my.cnf या my.ini में जोड़ें:
[mysqld] general_log = 1 general_log_file = /var/log/mysql/general.log
लॉग देखना
-- लॉग फाइल देखना (लिनक्स/मैक) tail -f /var/log/mysql/general.log -- विंडोज में type E:\mysqllog
महत्वपूर्ण चेतावनियां
- डिस्क I/O बढ़ता है
- डिस्क स्पेस तेजी से भरता है
- उत्पादन सर्वर पर प्रदर्शन गिरता है
लॉग बंद करना
SET GLOBAL general_log = OFF;
लॉग रोटेशन
बड़ी लॉग फाइलों के लिए logrotate (लिनक्स) या समान टूल का उपयोग करें।
विकल्प: स्लो क्वेरी लॉग
केवल धीमी क्वेरी लॉग करने के लिए (उत्पादन के लिए बेहतर):
SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 2; -- 2 सेकंड से अधिक