MySQL डेटाबेस सर्वर डेटाबेस में प्रत्येक लेनदेन के लिए बाइनरी लॉग फाइल बनाता है, बशर्ते कि व्यवस्थापक my.cny कॉन्फ़िगरेशन फ़ाइल में "लॉग-बिन" पैरामीटर को अक्षम या टिप्पणी न करे। बाइनरी लॉग फ़ाइलें बाइनरी प्रारूप में लिखी जाती हैं। हालांकि बाइनरी लॉग, या लॉगबिन के रूप में भी जाना जाता है, मुख्य रूप से MySQL डेटाबेस प्रतिकृति उद्देश्य के लिए उपयोग किया जाता है, कभी-कभी आपको टेक्स्ट प्रारूप में बाइनरी लॉग की सामग्री की जांच करने या पढ़ने की आवश्यकता हो सकती है, जहां mysqlbinlog उपयोगिता काम आएगी।
बाइनरी लॉग फ़ाइल, जिसका नाम आमतौर पर host_name-bin.xxxxxx प्रारूप के साथ होता है और /var/lib/mysql निर्देशिका में संग्रहीत होता है, को खोला और पढ़ा नहीं जा सकता क्योंकि यह अपठनीय बाइनरी प्रारूप में है। पाठ प्रारूप में बाइनरी लॉग को पढ़ने के लिए, हम mysqlbinlog कमांड का उपयोग कर सकते हैं, जो एक प्रतिकृति सेटअप में दास सर्वर द्वारा लिखी गई रिले लॉग फ़ाइलों को पढ़ने में भी सक्षम है। रिले लॉग का प्रारूप बाइनरी लॉग फ़ाइलों के समान होता है।
Mysqlbinlog उपयोगिता का उपयोग करना सरल है, बस निम्न कमांड सिंटैक्स का उपयोग करके रूट के रूप में लॉगिन करने के बाद mysqlbinlog को लागू करें (अन्यथा आपको उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करना होगा) SSH के माध्यम से शेल में:
mysqlbinlog [options] log_file ...
तो binlog.000001 नाम की बाइनरी लॉग फ़ाइल की सामग्री को पढ़ने और प्रदर्शित करने के लिए, इस कमांड का उपयोग करें:
mysqlbinlog binlog.000001
बाइनरी लॉग फाइलें और इसका डेटा बहुत बड़ा होने की संभावना है, इस प्रकार स्क्रीन पर कुछ भी पढ़ना लगभग असंभव हो जाता है। हालाँकि, आप mysqlbinlog के आउटपुट को एक फ़ाइल में पाइप कर सकते हैं जिसे बाद में टेक्स्ट एडिटर में ब्राउज़ करने के लिए निम्न कमांड का उपयोग करके खोला जा सकता है:
mysqlbinlog binlog.000001 > filename.txt
बाइनरी लॉग से प्राप्त डेटा की मात्रा को कम करने के लिए, ऐसे कई विकल्प हैं जिनका उपयोग वापस किए गए डेटा को सीमित करने के लिए किया जा सकता है। उपयोगी लोगों में से नीचे सूचीबद्ध हैं:
–स्टार्ट-डेटटाइम=डेटटाइम
डेटाटाइम तर्क के बराबर या बाद में टाइमस्टैम्प वाले पहले ईवेंट पर बाइनरी लॉग पढ़ना प्रारंभ करें। डेटाटाइम मान उस मशीन पर स्थानीय समय क्षेत्र के सापेक्ष होता है जहां आप mysqlbinlog चलाते हैं। मान DATETIME या TIMESTAMP डेटा प्रकारों के लिए स्वीकृत प्रारूप में होना चाहिए। उदाहरण के लिए:
mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000001
–स्टॉप-डेटटाइम=डेटटाइम
डेटाटाइम तर्क के बराबर या पीछे टाइमस्टैम्प वाले पहले ईवेंट पर बाइनरी लॉग पढ़ना बंद करें। यह विकल्प पॉइंट-इन-टाइम रिकवरी के लिए उपयोगी है। डेटाटाइम मान के बारे में जानकारी के लिए -स्टार्ट-डेटटाइम विकल्प का विवरण देखें।
–प्रारंभ-स्थिति=N
एन तर्क के बराबर स्थिति वाले पहले ईवेंट पर बाइनरी लॉग पढ़ना प्रारंभ करें। यह विकल्प कमांड लाइन पर नामित पहली लॉग फ़ाइल पर लागू होता है।
–स्टॉप-पोज़िशन=N
एन तर्क के बराबर या उससे अधिक की स्थिति वाले पहले ईवेंट पर बाइनरी लॉग पढ़ना बंद करें। यह विकल्प कमांड लाइन पर नामित अंतिम लॉग फ़ाइल पर लागू होता है।
Mysqlbinlog पर अधिक उपयोग की जानकारी के लिए, यहाँ जाएँ।