MySQL में log_bin_trust_function_creators का उपयोग


14

का उपयोग क्या है log_bin_trust_function_creators? इसके अलावा, क्या पैरामीटर का मूल्य गतिशील है? यदि मैं अपनी MySQL सेवा को पुनः आरंभ करता हूं तो क्या यह बदल जाएगा?

जवाबों:


14

यह चर नियंत्रित करता है कि क्या बाइनरी लॉगिंग को संग्रहीत फ़ंक्शन बनाने के लिए संग्रहीत फ़ंक्शन पर भरोसा करना चाहिए जो असुरक्षित घटनाओं का कारण होगा। उदाहरण के लिए। UUID फ़ंक्शन करना

यह प्रलेखन में अच्छी तरह से समझाया गया है:

जब आप एक संग्रहीत कार्य बनाते हैं, तो आपको यह घोषित करना होगा कि यह नियतात्मक है या यह डेटा को संशोधित नहीं करता है। अन्यथा, यह डेटा रिकवरी या प्रतिकृति के लिए असुरक्षित हो सकता है।

डिफ़ॉल्ट रूप से, एक क्रिएट फंक्शन स्टेटमेंट को स्वीकार करने के लिए, कम से कम DETERMINISTIC, NO SQL, या READS SQL DATA को स्पष्ट रूप से निर्दिष्ट किया जाना चाहिए। अन्यथा एक त्रुटि होती है:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

फ़ंक्शन निर्माण पर पूर्ववर्ती स्थितियों को शिथिल करने के लिए (जिसमें आपके पास सुपर विशेषाधिकार होना चाहिए और यह कि फ़ंक्शन को नियतकालिक या डेटा संशोधित नहीं करना चाहिए), वैश्विक log_bin_trust_function_creators सिस्टम चर को 1 पर सेट करें।

संदर्भ: mysql- दस्तावेज़ीकरण (इसे पढ़ें क्योंकि यह उदाहरण के साथ समझाता है।)

आपके दूसरे प्रश्न के बारे में, यदि यह गतिशील है और सर्वर को पुनरारंभ करने पर यह बदल जाएगा:

  • हाँ यह एक गतिशील चर है।

  • चर पुनः आरंभ होने पर बदल जाएगा, यदि आप परिवर्तन को प्रतिबिंबित करने के लिए कॉन्फ़िगरेशन को अपडेट नहीं करते हैं।

संदर्भ: mysql-प्रलेखन-फिर


क्या यह एक बूलियन मूल्य लेता है? सही यह मेरे लिए TRUE पर सेट है .. इसका मतलब यह है कि यह '1' है?
tesla747

mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE
mysql_user

ठीक है, मैं समझता हूँ कि लेकिन क्या विशेष रूप से उस पैरामीटर के लिए इसे '1' में बदलना आवश्यक है? अब जब से मैंने इसे TRUE के रूप में सेट किया है, जब मैं पुनः आरंभ करता हूँ mysql सेवा फिर से बदल जाएगी
tesla747

1
ये सही है! तो इसे लगातार बनाए रखने के लिए आपको अपने my.cnf फ़ाइल में भी समान कॉन्फ़िगरेशन मान रखना चाहिए।
mysql_user

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