MySQL
लॉग फ़ाइल
खोज…
एक सूचि
- सामान्य लॉग - सभी प्रश्न - VARIABLE general_log देखें
- धीमी लॉग - क्वेरी long_query_time से धीमी है - slow_query_log_file
- Binlog - प्रतिकृति और बैकअप के लिए - log_bin_basename
- रिले लॉग - प्रतिकृति के लिए भी
- सामान्य त्रुटियां - mysqld.err
- start / stop - mysql.log (बहुत दिलचस्प नहीं) - log_error
- InnoDB फिर से लॉग इन करें - iblog *
चर देखें basedir
और datadir
कई लॉग के लिए डिफ़ॉल्ट स्थान के लिए
कुछ लॉग अन्य VARIABLES द्वारा चालू / बंद किए जाते हैं। कुछ या तो किसी फ़ाइल में या किसी टेबल पर लिखे होते हैं।
(समीक्षकों को ध्यान दें: इसके लिए अधिक विवरण और अधिक स्पष्टीकरण की आवश्यकता है।)
डॉक्यूमेंटर्स : कृपया प्रत्येक लॉग प्रकार के लिए, विंडोज और * निक्स दोनों के लिए डिफ़ॉल्ट स्थान और नाम शामिल करें। (या कम से कम जितना आप कर सकते हैं।)
धीमी क्वेरी लॉग
धीमे क्वेरी लॉग को समाप्त होने में long_query_time
सेकंड तक ले जाने वाले प्रश्नों के लिए लॉग ईवेंट होते हैं। उदाहरण के लिए, पूरा होने में 10 सेकंड तक। वर्तमान में सेट किए गए समय सीमा को देखने के लिए, निम्नलिखित समस्याएँ जारी करें:
SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
| 10.000000 |
+-------------------+
इसे my.cnf
या my.ini
फ़ाइल में GLOBAL चर के रूप में सेट किया जा सकता है। या इसे कनेक्शन द्वारा सेट किया जा सकता है, हालांकि यह असामान्य है। मान 0 से 10 (सेकंड) के बीच सेट किया जा सकता है। किस मूल्य का उपयोग करें?
- 10 इतना ऊँचा है जितना लगभग बेकार है;
- 2 एक समझौता है;
- 0.5 और अन्य अंश संभव हैं;
- 0 हर चीज पर कब्जा कर लेता है; यह डिस्क को खतरनाक रूप से तेजी से भर सकता है, लेकिन बहुत उपयोगी हो सकता है।
धीमे प्रश्नों को कैप्चर करना या तो चालू या बंद है। और लॉग की गई फ़ाइल भी निर्दिष्ट है। नीचे इन अवधारणाओं को कैप्चर किया गया है:
SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off)
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir
SELECT @@datadir; -- to see current value of the location for capture file
SET GLOBAL slow_query_log=0; -- Turn Off
-- make a backup of the Slow Query Log capture file. Then delete it.
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created)
अधिक जानकारी के लिए, कृपया MySQL मैनुअल पेज स्लो क्वेरी लॉग देखें
नोट: धीमी गति से चालू / बंद करने पर उपरोक्त जानकारी 5.6 (?) में बदल गई थी; पुराने संस्करण में एक और तंत्र था।
आपके सिस्टम को धीमा करने के तरीके को देखने के लिए "सबसे अच्छा" तरीका:
long_query_time=...
turn on the slowlog
run for a few hours
turn off the slowlog (or raise the cutoff)
run pt-query-digest to find the 'worst' couple of queries. Or mysqldumpslow -s t
जनरल क्वेरी लॉग
सामान्य क्वेरी लॉग में क्लाइंट कनेक्ट, डिस्कनेक्ट और क्वेरी से सामान्य जानकारी की एक सूची होती है। यह डिबगिंग के लिए अमूल्य है, फिर भी यह प्रदर्शन (प्रशस्ति?) के लिए बाधा के रूप में है।
सामान्य क्वेरी लॉग का एक उदाहरण दृश्य नीचे देखा गया है:
यह निर्धारित करने के लिए कि वर्तमान में सामान्य लॉग कैप्चर किया जा रहा है:
SELECT @@general_log; -- 1 = Capture is active; 0 = It is not.
कैप्चर फ़ाइल का फ़ाइल नाम निर्धारित करने के लिए:
SELECT @@general_log_file; -- Full path to capture file
फाइल करने के लिए fullpath नहीं दिखाया गया है, तो फ़ाइल में मौजूद है datadir
।
विंडोज उदाहरण:
+----------------------------------------------------------+
| @@general_log_file |
+----------------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Data\GuySmiley.log |
+----------------------------------------------------------+
लिनक्स:
+-----------------------------------+
| @@general_log_file |
+-----------------------------------+
| /var/lib/mysql/ip-ww-xx-yy-zz.log |
+-----------------------------------+
परिवर्तन करने के लिए बना रहे हैं जब general_log_file
वैश्विक चर, नई लॉग में सहेजा जाता है datadir
। हालाँकि, फ़ुलपाथ को अब चर की जाँच करके परिलक्षित नहीं किया जा सकता है।
के लिए कोई प्रवेश के मामले में general_log_file
विन्यास फाइल में, यह लागू हो जाएगी @@hostname
में लॉग datadir
।
सर्वोत्तम कार्य बंदी को बंद करने के लिए हैं। कैप्चर की शुरुआत / अंत डेटाटाइम को दर्शाते हुए फ़ाइल नाम को एक बैकअप निर्देशिका में लॉग फ़ाइल को सहेजें। पहले फ़ाइल को हटाने से एक फाइल सिस्टम कदम उस फ़ाइल की नहीं होती है। लॉग फ़ाइल के लिए एक नया फ़ाइल नाम स्थापित करें और कैप्चर ऑन (नीचे सभी शो) चालू करें। सर्वोत्तम प्रथाओं में एक सावधान निर्धारण भी शामिल है यदि आप भी इस समय कब्जा करना चाहते हैं। आमतौर पर, कैप्चरिंग केवल डिबगिंग उद्देश्यों के लिए चालू है।
बैक-अप लॉग के लिए एक विशिष्ट फाइल सिस्टम फ़ाइल नाम हो सकता है:
/LogBackup/GeneralLog_20160802_1520_to_20160802_1815.log
जहाँ दिनांक और समय एक सीमा के रूप में फ़ाइल नाम का हिस्सा हैं।
Windows के लिए सेटिंग बदलने के साथ निम्न अनुक्रम नोट करें।
SELECT @@general_log; -- 0. Not being captured
SELECT @@general_log_file; -- C:\ProgramData\MySQL\MySQL Server 5.6\Data\GuySmiley.log
SELECT @@datadir; -- C:\ProgramData\MySQL\MySQL Server 5.7\Data\
SET GLOBAL general_log_file='GeneralLogBegin_20160803_1420.log'; -- datetime clue
SET GLOBAL general_log=1; -- Turns on actual log capture. File is created under `datadir`
SET GLOBAL general_log=0; -- Turn logging off
लिनक्स समान है। ये गतिशील परिवर्तनों का प्रतिनिधित्व करेंगे। सर्वर के किसी भी रिस्टार्ट में कॉन्फ़िगरेशन फ़ाइल सेटिंग्स को उठाया जाएगा।
कॉन्फ़िगरेशन फ़ाइल के लिए, निम्नलिखित प्रासंगिक चर सेटिंग्स पर विचार करें:
[mysqld]
general_log_file = /path/to/currentquery.log
general_log = 1
इसके अलावा, चर log_output
को केवल FILE
नहीं, बल्कि TABLE
आउटपुट के लिए कॉन्फ़िगर किया जा सकता है। उसके लिए, कृपया गंतव्य देखें।
कृपया MySQL मैनुअल पेज जनरल क्वेरी लॉग देखें ।
त्रुटि संग्रह
त्रुटि लॉग प्रारंभ और सूचना को रोकने और सर्वर द्वारा सामना की गई महत्वपूर्ण घटनाओं से आबाद है।
निम्नलिखित इसकी सामग्री का एक उदाहरण है:
चर log_error
त्रुटि लॉगिंग के लिए लॉग फ़ाइल के लिए पथ रखता है।
के लिए एक विन्यास फाइल प्रविष्टि के अभाव में log_error
, व्यवस्था करने के लिए अपने मूल्यों को लागू हो जाएगी @@hostname
में .err datadir
। ध्यान दें कि log_error
एक गतिशील चर नहीं है। इस प्रकार, परिवर्तन एक cnf या ini फ़ाइल परिवर्तन और एक सर्वर रिस्टार्ट के माध्यम से किया जाता है (या यहाँ नीचे मैनुअल पेज लिंक में "फ़्लशिंग एंड रिनेमिंग द एरर लॉग फ़ाइल" देखकर)।
त्रुटियों के लिए लॉगिंग अक्षम नहीं की जा सकती। वे समस्याओं का निवारण करते समय सिस्टम स्वास्थ्य के लिए महत्वपूर्ण हैं। साथ ही, सामान्य क्वेरी लॉग की तुलना में प्रविष्टियाँ नगण्य हैं।
वैश्विक चर log_warnings
वर्बोसिटी के लिए स्तर सेट करता है जो सर्वर संस्करण द्वारा भिन्न होता है। निम्नलिखित स्निपेट दिखाता है:
SELECT @@log_warnings; -- make a note of your prior setting
SET GLOBAL log_warnings=2; -- setting above 1 increases output (see server version)
log_warnings
जैसा कि ऊपर देखा गया है एक गतिशील चर है।
cnf
और ini
फ़ाइलों में कॉन्फ़िगरेशन फ़ाइल परिवर्तन निम्न की तरह लग सकते हैं।
[mysqld]
log_error = /path/to/CurrentError.log
log_warnings = 2
MySQL 5.7.2 ने चेतावनी स्तर वर्बोसिटी को 3 तक विस्तारित किया और GLOBAL log_error_verbosity
जोड़ा। दोबारा, इसे 5.7.2 में पेश किया गया था। इसे गतिशील रूप से सेट किया जा सकता है और इसे चर के रूप में जांचा जा सकता है या cnf
या ini
कॉन्फ़िगरेशन फ़ाइल सेटिंग्स के माध्यम से सेट किया जा सकता है।
MySQL 5.7.2 के अनुसार:
[mysqld]
log_error = /path/to/CurrentError.log
log_warnings = 2
log_error_verbosity = 3
कृपया MySQL मैनुअल पेज को देखें त्रुटि लॉग शीर्षक विशेष रूप से फ्लशिंग और नाम बदलने की त्रुटि फ़ाइल के लिए लॉग इन करें, और इसके त्रुटि लॉग log_warnings
अनुभाग के साथ log_warnings
और error_log_verbosity
से संबंधित संस्करण।