MySQL बाइनरी लॉगिंग को log_bin चर के साथ अक्षम करें


35

डिफ़ॉल्ट MySQL विन्यास फाइल /etc/mysql/my.cnf APT का उपयोग करके कुछ डेबियन पैकेज द्वारा स्थापित किया जाता है, अक्सर log_bin चर सेट करते हैं, इसलिए बिनलॉग सक्षम होते हैं:

log_bin = /var/log/mysql/mysql-bin.log

जब मैं इस तरह की स्थापना पर बाइनरी लॉगिंग को अक्षम करना चाहता हूं, तो my.cnf कार्यों में लाइन पर टिप्पणी करें, लेकिन मुझे आश्चर्य है कि क्या एक अजीब शैली में, लॉग ऑफ करने के लिए एक्सप्लोसिव लॉग_बिन सेट करके बाइनरी लॉगिंग को अक्षम करने का एक तरीका है, मेरा मतलब है /etc/mysql/conf.d/myCustomFile.cnf जैसी एक सम्मिलित फ़ाइल, इसलिए डिफ़ॉल्ट my.cnf को बदला नहीं गया है और यदि आवश्यक हो, तो इसे आसानी से apt द्वारा अपडेट किया जा सकता है।

मैंने "log_bin = 0", "log_bin = OFF" या "log_bin =" की कोशिश की, लेकिन कोई काम नहीं करता ...

जवाबों:


42

यह एक पुराना प्रश्न है, लेकिन यह एक खोज में आया था जब मैं अपनी स्मृति को सही विकल्प नाम के बारे में बताने की कोशिश कर रहा था और इसलिए अब मुझे लगा है कि मैं यहां विवरण जोड़ रहा हूं।

प्रश्न का मुख्य भाग है:

मेरा मतलब एक सम्मिलित फ़ाइल जैसे /etc/mysql/conf.d/myCustomFile.cnf से है

आप विकल्प का उपयोग करके शामिल विकल्प फ़ाइल से ऐसा कर सकते हैं skip-log-bin। उदाहरण के लिए आप /etc/mysql/conf.d/disable_binary_log.cnfनिम्नलिखित सामग्री बना सकते हैं:

[mysqld]
skip-log-bin

आप skip-उन्हें इस तरह से भी अक्षम करने के लिए अन्य विकल्पों में उपसर्ग के रूप में जोड़ सकते हैं ।


1
महान, वास्तव में मैं क्या उम्मीद कर रहा था। यह कम से कम MariaDB 10.0 पर अच्छा काम करता है। बहुत बहुत धन्यवाद।
निकोलस पयर्ट

7

MySQL 8 में यह विकल्प disable_log_bin है जिसे अनुभाग my.cnfमें फ़ाइल में किसी भी पैरामीटर के बिना प्रदान करना है [mysqld]

[mysqld]
disable_log_bin
some-other-option = any-value

5

आप इसे इस तरह से देख सकते हैं, log_bin को मापदंडों को स्वीकार नहीं करना चाहिए, या तो आप डालते हैं:

log_bin

या कुछ भी नहीं है, क्योंकि यह एक बूलियन पैरामीटर है।

हालाँकि, यदि कोई मान सेट किया जाता है, तो लॉग सक्षम होते हैं और मूल्य की व्याख्या बिनलॉग बेसनेम के रूप में की जाती है।

लॉग विकल्प का इतिहास बहुत सहज नहीं है, और इसके प्रारूप को संस्करण से संस्करण में बदल रहा है (मैं आपको देख रहा हूं, धीमी लॉग)।


यह MariaDB पर काम नहीं करता है
यांत्रिकी बटालियन

यह देखते हुए कि मैं MariaDB का उपयोग करता हूं, और मेरे पास मेरे विन्यास पर एक ही लाइन है, मुझे बहुत विश्वास है कि यह काम करता है।
jynus

4

यदि आप प्रतिकृति नहीं बना रहे हैं, तो आप अपने my.ini या my.cnf फ़ाइल को बदलकर बिनलॉगिंग को अक्षम कर सकते हैं। अपना my.ini या /etc/my.cnf (/etc/mysql/my.cnf) खोलें, दर्ज करें:

# vi /etc/my.cnf

एक पंक्ति ढूंढें जो "log_bin" पढ़ती है और इसे निम्नानुसार निकालें या टिप्पणी करें:

#log_bin = /var/log/mysql/mysql-bin.log

आपको निम्नलिखित लाइनों को हटाने या टिप्पणी करने की आवश्यकता है:

#expire_logs_days = 10

#max_binlog_size = 100M

फ़ाइल को बंद करें और सहेजें। अंत में, mysql सर्वर को पुनरारंभ करें:

# service mysql restart


1
मुझे लगता है कि ओपी इसे समझता है, यही कारण है कि उसने लिखा है: "मेरा मतलब एक सम्मिलित फ़ाइल में है जैसे /etc/mysql/conf.d/myCustomFile.cnf, इसलिए डिफ़ॉल्ट my.cnf नहीं बदला गया है"
पीटर वी। मॉरच

1

मारियाडीबी ( https://mariadb.com/kb/en/library/activating-the-binary-log/ ) के लिए मैनुअल से

यदि आप एक नाम नहीं देते हैं (जो वैकल्पिक रूप से, एक निरपेक्ष पथ को शामिल कर सकते हैं), तो डिफ़ॉल्ट डेटादिर / लॉग-बेसन-बिन, डेटादिर / मायस्कल-बिन या डाटाडिर / मारियाडब-बिन होगा

तथापि,

SUPER विशेषाधिकार वाले ग्राहक sql_log_bin चर सेट करके वर्तमान सत्र के लिए बाइनरी लॉग को अक्षम और पुन: सक्षम कर सकते हैं।

SET sql_log_bin = 0;

SET sql_log_bin = 1;

हालाँकि, यदि आप कहते हैं कि यह स्थापना के दौरान डिफ़ॉल्ट रूप से सक्षम था, तो आपको अपनी my.cnf फ़ाइल से लाइन हटाकर अक्षम करना होगा और फिर mysqld को पुनरारंभ करना होगा। आप बाइनरी डेटा ( https://dev.mysql.com/doc/refman/5.6/en/purge-binary-logs.html ) भी शुद्ध कर सकते हैं

PURGE BINARY LOGS

अंत में, के रूप में अन्य पोस्टर के जवाब का उल्लेख है, में MySQL 8 वहाँ स्पष्ट रूप से का उपयोग कर विन्यास फाइल से बाइनरी लॉगिंग बंद करने के लिए एक विकल्प है --skip-log-binया --disable-log-binकॉन्फ़िग फ़ाइल के [mysqld] अनुभाग में विकल्प।

बाइनरी लॉगिंग को अक्षम करने के लिए, आप स्टार्टअप पर --skip-log-binया --disable-log-binविकल्प निर्दिष्ट कर सकते हैं । यदि इनमें से कोई विकल्प निर्दिष्ट किया गया है और --log-binनिर्दिष्ट भी है, तो बाद में निर्दिष्ट विकल्प पूर्वता लेता है। जब बाइनरी लॉगिंग अक्षम हो जाती है, तो log_bin सिस्टम वेरिएबल OFF पर सेट हो जाता है।


0

जैसा कि मुझे पता है कि एक पैकेज को अपडेट करने के बाद, कॉन्फिग फाइल पुरानी होनी चाहिए, इसलिए अपडेट के बाद आपके पास एक ही कॉन्फिग फाइल है। अन्यथा आप $ MYSQL_HOME / my.cnf पथ में दूसरी कॉन्फिग फ़ाइल बना सकते हैं। यह सर्वर विशिष्ट विकल्पों के लिए है और जैसा कि मुझे पता है कि वैश्विक /etc/my.cnf में सेटिंग्स को अधिलेखित कर दिया जाएगा


1
हां, डेबियन डिफॉल्ट पॉलिसी एक कॉन्फिगर फाइल को / etc पर ओवरराइट नहीं करती है। लेकिन मेरा सवाल ठीक था कि कैसे /etc/mysql/my.cnf में लाइन पर टिप्पणी किए बिना "शून्य मान" के साथ log_bin सेटिंग को ओवरराइट करना है।
निकोलस Payart

छोड़ें-लॉग-बिन बूलियन्स को कहीं और बंद कर देता है
सैंटियागो अरज़ती
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.