Thursday 28 December 2017

Mysql शो पूर्णांक के रूप में द्विआधारी विकल्प


विभिन्न डीबी के लिए एसक्यूएल डेटा प्रकार एक निश्चित लम्बाई स्ट्रिंग रखता है (इसमें वर्ण, संख्याएं और विशेष वर्ण हो सकते हैं)। निश्चित आकार को कोष्ठक में निर्दिष्ट किया गया है। 255 वर्ण तक स्टोर कर सकता है एक चर लंबाई स्ट्रिंग (अक्षरों, संख्याएं और विशेष वर्ण हो सकते हैं) रखता है। अधिकतम आकार को कोष्ठक में निर्दिष्ट किया गया है। 255 वर्णों तक स्टोर कर सकते हैं नोट: यदि आप 255 से अधिक मूल्य डालते हैं तो इसे टेक्स्ट प्रकार में कनवर्ट किया जाएगा अधिकतम 255 वर्णों वाली एक स्ट्रिंग धारण करता है BLOBs (बाइनरी बड़े ऑब्जेक्ट्स) के लिए 65,535 अक्षरों की अधिकतम लंबाई वाला स्ट्रिंग रखता है। आंकड़ों के 65,535 बाइट्स तक पकड़ लेते हैं बीएलओबी (बाइनरी बड़े ऑब्जेक्ट्स) के लिए 16,777,215 अक्षरों की अधिकतम लंबाई वाली स्ट्रिंग रखती है। आंकड़ों के 16,777,215 बाइट्स तक पकड़ लेते हैं BLOBs (बाइनरी बड़े ऑब्जेक्ट्स) के लिए 4,294,967,295 अक्षरों की अधिकतम लंबाई वाली स्ट्रिंग रखती है। डेटा के 4,294,967,295 बाइट तक पकड़ लेता है, आप संभव मूल्यों की एक सूची दर्ज करते हैं। आप एक ENUM सूची में 65535 मान तक सूचीबद्ध कर सकते हैं। अगर कोई मान डाला जाता है जो सूची में नहीं है, तो रिक्त मान डाला जाएगा। नोट: मान उन क्रम में सॉर्ट किए जाते हैं, जो आपने दर्ज किए हैं। आप इस प्रारूप में संभावित मूल्यों को दर्ज करते हैं: ENUM (एक्स, वाई, जेड) ईएनडी के समान है कि एसईटी में 64 सूची आइटम तक हो सकते हैं और एक से अधिक विकल्प -128 से 127 सामान्य जमा कर सकते हैं। 0 से 255 अनसाइन किए गए अधिकतम संख्याओं को कोष्ठक में निर्दिष्ट किया जा सकता है- 32768 से 32767 सामान्य। 0 से 65535 अनसाइन किए गए अधिकतम संख्याओं को कोष्ठक में निर्दिष्ट किया जा सकता है -8388608 से 8388607 सामान्य। 0 से 16777215 अनसाइन किए गए अंकों की अधिकतम संख्या कोष्ठक में निर्दिष्ट किया जा सकता है -2147483648 से 2147483647 सामान्य। 0 से 42 9 4967295 अनसाइन किए गए अंकों की अधिकतम संख्या कोष्ठक में निर्दिष्ट किया जा सकता है -9223372036854775808 9223372036854775807 सामान्य 0 से 18446744073709551615 अनसाइन किए गए अधिकतम संख्याओं को कोष्ठकों में निर्दिष्ट किया जा सकता है एक छोटी संख्या में अस्थायी दशमलव बिंदु। अंकों की अधिकतम संख्या निर्दिष्ट कर सकते हैं आकार पैरामीटर में। दशमलव बिंदु के दाईं ओर अंकों की अधिकतम संख्या डी पैरामीटर में निर्दिष्ट होती है एक बड़ी संख्या में अस्थायी दशमलव बिंदु। अंकों की अधिकतम संख्या निर्दिष्ट कर सकते हैं आकार पैरामीटर में। दशमलव बिंदु के दाईं ओर अंकों की अधिकतम संख्या डी स्ट्रिंग के रूप में संग्रहीत एक पैरामीटर में निर्दिष्ट है। एक निश्चित दशमलव बिंदु के लिए अनुमति देता है अंकों की अधिकतम संख्या निर्दिष्ट कर सकते हैं आकार पैरामीटर में। दशमलव बिंदु के दाईं ओर अंकों की अधिकतम संख्या डी पैरामीटर में निर्दिष्ट होती है पूर्णांक प्रकारों में एक अतिरिक्त विकल्प होता है जिसका नाम UNSIGNED है। आम तौर पर, पूर्णांक एक नकारात्मक से सकारात्मक मूल्य तक जाता है। यूएनएसएन्डेड एट्रिब्यूट को जोड़ना उस रेंज को गति देगा, इसलिए यह एक ऋणात्मक संख्या के बजाय शून्य पर शुरू हो जाएगा। MySQL डेटा प्रकार सारांश: इस ट्यूटोरियल में, आप MySQL डेटा प्रकारों के बारे में सीखेंगे और MySQL में डेटाबेस को डिज़ाइन करने में उन्हें कैसे प्रभावी ढंग से उपयोग करेंगे। एक डेटाबेस तालिका में विशिष्ट डेटा प्रकार जैसे कि संख्यात्मक या स्ट्रिंग के साथ एकाधिक स्तंभ होते हैं। MySQL केवल संख्यात्मक या स्ट्रिंग के अलावा अन्य डेटा प्रकार प्रदान करता है MySQL में प्रत्येक डेटा प्रकार निम्नलिखित विशेषताओं से निर्धारित किया जा सकता है: यह मूल्यों का प्रतिनिधित्व करता है जो स्थान लेता है और क्या मान एक निश्चित-लंबाई या चर लंबाई है डेटा प्रकार के मानों को अनुक्रमित किया जा सकता है या नहीं MySQL एक विशिष्ट डेटा प्रकार के मूल्यों की तुलना कैसे करता है संख्यात्मक डेटा प्रकार आप सटीक संख्या डेटा प्रकार और पूर्णांक, निश्चित बिंदु और फ़्लोटिंग बिंदु सहित अनुमानित संख्यात्मक डेटा प्रकार सहित MySQL में सभी SQL मानक संख्यात्मक प्रकार पा सकते हैं। इसके अलावा, MySQL बिट फ़ील्ड मानों को संग्रहीत करने के लिए बिट डेटा प्रकार का भी समर्थन करता है। बीआईटी प्रकार को छोड़कर संख्यात्मक प्रकारों पर हस्ताक्षर या हस्ताक्षरित किया जा सकता है। निम्न तालिका आपको MySQL में संख्यात्मक प्रकार का सार दिखाती है: एक बहुत ही छोटी पूर्णांक एक छोटी पूर्णांक एक मध्यम आकार की पूर्णांक एक मानक पूर्णांक एक बड़ी पूर्णांक एक निश्चित बिंदु संख्या एक एकल परिशुद्धता फ़्लोटिंग बिंदु संख्या एक डबल-सटीक फ़्लोटिंग बिंदु संख्या बूलियन डेटा प्रकार MySQL में निर्मित नहीं है BOOLEAN या BOOL डेटा प्रकार। इसलिए, यह छोटी पूर्णांक प्रकार, टिनिनेट (1) बूलियन का प्रतिनिधित्व करने के लिए उपयोग करता है दूसरे शब्दों में, BOOLEAN और BOOL TINYINT (1) के लिए समानार्थक शब्द हैं। स्ट्रिंग डेटा प्रकार MySQL में, एक स्ट्रिंग सादा पाठ से कुछ भी बाइनरी डेटा जैसे छवियों और फ़ाइलों को पकड़ सकता है। तार की तुलना करके तुलना की जाती है और लिखे ऑपरेटर का उपयोग करके पैटर्न मिलान के आधार पर खोज की जा सकती है। नियमित अभिव्यक्ति। और पूर्ण पाठ खोज निम्न तालिका आपको MySQL में स्ट्रिंग डेटा प्रकार दिखाती है: एक मदद संदेश प्रदर्शित करें और बाहर निकलें। स्वत: रीहैशिंग सक्षम करें यह विकल्प डिफ़ॉल्ट रूप से चालू होता है, जिससे डेटाबेस, तालिका, और कॉलम नाम समापन को सक्षम किया जा सकता है। पुन: साझाकरण अक्षम करने के लिए - अक्षम-ऑटो-रिहेश का उपयोग करें इससे MySQL को तेज़ी से शुरू करने का कारण बनता है, लेकिन यदि आप नाम समापन का उपयोग करना चाहते हैं, तो आपको पुनर्वैश कमांड या उसके शॉर्टकट को जारी करना होगा। कोई नाम पूरा करने के लिए, पहला भाग दर्ज करें और टैब दबाएं। यदि नाम स्पष्ट है, तो mysql इसे पूरा करता है। अन्यथा, आप संभवतः संभव नामों को देखने के लिए फिर से टैब दबा सकते हैं जो आपने अभी तक टाइप किए हैं। कोई डिफ़ॉल्ट डेटाबेस नहीं है तो समापन उत्पन्न नहीं होता है इस सुविधा के लिए एक MySQL क्लाइंट की आवश्यकता होती है जिसे रीडलाइन लाइब्रेरी के साथ संकलित किया गया है। आमतौर पर, रीडलाइन लाइब्रेरी विंडोज पर उपलब्ध नहीं है कारण परिणाम सेट खड़ी प्रदर्शित करने के लिए यदि वे वर्तमान विंडो के लिए बहुत व्यापक हैं, और अन्यथा सामान्य टैब्यूलर प्रारूप का उपयोग करते हैं (यह बयानों या जी के समाप्त होने पर लागू होता है।) नई पंक्ति पर प्रत्येक पंक्ति के साथ, स्तंभ विभाजक के रूप में टैब का उपयोग करके परिणाम प्रिंट करें इस विकल्प के साथ, mysql इतिहास फ़ाइल का उपयोग नहीं करता है। बैच मोड परिणाम नॉनबैटल आउटपुट प्रारूप में और विशेष वर्णों से बचने के लिए। कच्चे मोड का उपयोग करके बचने को निष्क्रिय कर दिया जा सकता है ---- विकल्प के लिए विवरण देखें। यह विकल्प mysqlbinlog आउटपुट में प्रसंस्करण के दौरान मदद करता है जिसमें BLOB मान शामिल हो सकते हैं। डिफ़ॉल्ट रूप से, mysql आरएनसी में स्टेटमेंट स्ट्रिंग्स को n में अनुवादित करता है और 0 को स्टेटमेंट टर्मिनेटर के रूप में व्याख्या करता है। --बाणी-मोड दोनों विशेषताओं को अक्षम करता है यह गैर-इंटरैक्टिव मोड में वर्णित और सीमांकक को छोड़कर सभी MySQL आज्ञाओं को अक्षम करता है (इनपुट के लिए mysql पर पाइप या स्रोत कमांड का उपयोग करके लोड किया गया)। कई नेटवर्क इंटरफेस वाले कंप्यूटर पर, MySQL सर्वर से कनेक्ट करने के लिए कौन सा इंटरफ़ेस का उपयोग करने के लिए इस विकल्प का उपयोग करें। परिणामों में स्तंभ नाम लिखें प्रदर्शन परिणाम मेटाडेटा सेट करें क्या सर्वर को भेजे गए कथनों में टिप्पणियां संरक्षित करना है। डिफ़ॉल्ट है - स्किप-टिप्पणियाँ (टिप्पणियां त्यागें), --comments (टिप्पणियां सुरक्षित रखें) के साथ सक्षम करें। MySQL 5.7.7 के अनुसार, MySQL क्लाइंट हमेशा अनुकूलक संकेत सर्वर से गुजरता है, भले ही यह विकल्प दिया गया है या नहीं। यह सुनिश्चित करने के लिए कि ऑप्टिमाइज़र संकेत छीन नहीं किए गए हैं यदि आप mysql क्लाइंट का एक पुराने संस्करण का उपयोग कर रहे हैं सर्वर के संस्करण के साथ जो अनुकूलक संकेत को समझता है, mysql को --comments विकल्प के साथ खोलें। क्लाइंट और सर्वर के बीच भेजे गए सभी जानकारी को संपीड़ित करें यदि दोनों समर्थन संपीड़न सर्वर से संकेत मिलता है कि क्लाइंट सैंडबॉक्स मोड को संभाल सकता है यदि खाता कनेक्ट करने के लिए उपयोग किया गया है तो एक समयसीमा समाप्त पासवर्ड है। यह mysql के गैर-इंटरैक्टिव इनवॉक्शंस के लिए उपयोगी हो सकता है क्योंकि सामान्यतः सर्वर गैर-इंटरएक्टिव क्लाइंट को डिस्कनेक्ट करता है, जो एक समयसीमा समाप्त पासवर्ड के साथ खाते का उपयोग करने का प्रयास करता है। (अनुभाग 7.3.7, पासवर्ड समाप्ति और सैंडबॉक्स मोड देखें।) यह विकल्प MySQL 5.7.2 में जोड़ा गया था। उपयोग करने के लिए डेटाबेस यह प्राथमिक रूप से एक विकल्प फ़ाइल में उपयोगी है एक डीबगिंग लॉग लिखें एक विशिष्ट डीबगॉप्शन स्ट्रिंग डी है: टी: ओ, फाइलनाम डिफ़ॉल्ट है d: t: o, tmpmysql. trace। यह विकल्प केवल तब ही उपलब्ध है जब MySQL का उपयोग withDEBUG का उपयोग किया गया था। ओरेकल द्वारा प्रदान की गई MySQL रिलीज बाइनरी इस विकल्प का उपयोग करके नहीं बनाई गई हैं। प्रोग्राम को बाहर निकलते समय कुछ डिबगिंग जानकारी प्रिंट करें कार्यक्रम के बाहर निकलते समय डिबगिंग सूचना और मेमोरी और सीपीयू उपयोग के आंकड़े प्रिंट करें। उपयोग करने के लिए क्लाइंट-साइड प्रमाणन प्लगिन के बारे में एक संकेत। खंड 7.3.8, प्लगेबल प्रमाणीकरण देखें। क्लासट और कनेक्शन के लिए वर्ण वर्ण का डिफ़ॉल्ट वर्ण सेट के रूप में उपयोग करें। यह विकल्प उपयोगी हो सकता है यदि ऑपरेटिंग सिस्टम एक वर्ण सेट का उपयोग करता है और डिफ़ॉल्ट रूप से mysql क्लाइंट दूसरे का उपयोग करता है इस स्थिति में, आउटपुट को गलत तरीके से स्वरूपित किया जा सकता है। आप आमतौर पर इस समस्या का उपयोग करके क्लाइंट को सिस्टम वर्ण सेट का उपयोग करने के लिए मजबूर करने के लिए ऐसे मुद्दों को ठीक कर सकते हैं। वैश्विक विकल्प फ़ाइल के बाद इस विकल्प फ़ाइल को पढ़ें (यूनिक्स पर) उपयोगकर्ता विकल्प फ़ाइल से पहले। यदि फाइल मौजूद नहीं है या अन्यथा अनुपयोगी है, तो एक त्रुटि उत्पन्न होती है। फ़ाइल नाम को वर्तमान निर्देशिका के सापेक्ष व्याख्या की जाती है यदि पूर्ण पथ नाम की बजाय रिश्तेदार पथ नाम के रूप में दिया जाता है। केवल दिए गए विकल्प फ़ाइल का उपयोग करें यदि फाइल मौजूद नहीं है या अन्यथा अनुपयोगी है, तो एक त्रुटि उत्पन्न होती है। फ़ाइल नाम को वर्तमान निर्देशिका के सापेक्ष व्याख्या की जाती है यदि पूर्ण पथ नाम की बजाय रिश्तेदार पथ नाम के रूप में दिया जाता है। अपवाद: यहां तक ​​कि --defaults-file के साथ। क्लाइंट प्रोग्राम पढ़ें। mylogin. cnf न केवल सामान्य विकल्प समूहों को पढ़ें, बल्कि सामान्य नामों के साथ समूह और str का प्रत्यय भी देखें उदाहरण के लिए, mysql सामान्यतः ग्राहक और mysql समूहों को पढ़ता है यदि --defaults-group-suffixother विकल्प दिया गया है, तो mysql क्लाइंट और मिसाइल समूह को भी पढ़ता है। स्टेटमेंट सीमांकक सेट करें डिफ़ॉल्ट अर्द्धविराम चरित्र है () नामों को अक्षम करें केवल फॉर्म का उपयोग करें, या नामित कमांड का उपयोग केवल एक अर्धविराम () के साथ समाप्त होने वाली रेखा की शुरुआत में करें mysql इस विकल्प से डिफ़ॉल्ट रूप से सक्षम होता है। हालांकि, यहां तक ​​कि इस विकल्प के साथ, लंबे प्रारूप आदेश अभी भी पहली पंक्ति से काम करते हैं। धारा 5.5.1.2 देखें, mysql कमांड कथन निष्पादित करें और छोड़ें डिफॉल्ट आउटपुट स्वरूप ऐसा होता है जो कि - बैच के साथ निर्मित होता है। सीमेंट 5.2.4 देखें, कमांड लाइन पर विकल्पों का उपयोग करना। कुछ उदाहरणों के लिए इस विकल्प के साथ, mysql इतिहास फ़ाइल का उपयोग नहीं करता है। एक SQL त्रुटि तब भी जारी रखें लॉगिंग प्रयोजनों के लिए अनदेखा करने के लिए बयान निर्दिष्ट करने वाले एक या अधिक पैटर्न के एक बृहदान्त्र से अलग सूची इन पैटर्न को डिफ़ॉल्ट पैटर्न सूची में जोड़ा जाता है (पहचान की गई: पासवर्ड)। इस विकल्प के लिए निर्दिष्ट मान - इतिहास फ़ाइल में लिखे गए बयानों के लॉगिंग को प्रभावित करता है, और syslog को --syslog विकल्प दिया जाता है। अधिक जानकारी के लिए, धारा 5.5.1.3 देखें, mysql लॉगिंग दिए गए होस्ट पर MySQL सर्वर से कनेक्ट करें। एचटीएमएल आउटपुट तैयार करें समारोह के नाम के बाद रिक्त स्थान पर ध्यान न दें इसका प्रभाव IGNORESPACE SQL मोड के लिए चर्चा में वर्णित है (अनुभाग 6.1.8, सर्वर SQL मोड देखें)। सर्वर से कनेक्ट करने के बाद चलाने के लिए SQL कथन। यदि स्वत: रीकनेक्ट सक्षम है, तो पुन: कनेक्शन होने के बाद बयान फिर से कार्यान्वित किया जाता है। त्रुटियों के लिए लाइन नंबर लिखें इसे --skip-line-numbers के साथ अक्षम करें LOAD डेटा INFILE के लिए स्थानीय क्षमता सक्षम या अक्षम करें। कोई मूल्य नहीं के साथ, विकल्प स्थानीय सक्षम बनाता है विकल्प को स्पष्ट रूप से अक्षम या सक्षम करने के लिए - स्थानीय-इंफिल0 या - स्थानीय-इन्फिल 1 के रूप में दिया जा सकता है। यदि उसे भी इसका समर्थन नहीं करता है तो लोकल को सक्षम करने पर कोई प्रभाव नहीं है I. mylogin. cnf लॉगिन पथ फ़ाइल में नामित लॉगिन पथ से विकल्प पढ़ें। एक लॉगिन पथ एक विकल्प समूह वाला समूह है जो निर्दिष्ट करता है कि किस MySQL सर्वर को कनेक्ट करना है और किसके रूप में प्रमाणीकृत है। लॉगिन पथ फ़ाइल बनाने या संशोधित करने के लिए, mysqlconfigeditor उपयोगिता का उपयोग करें। धारा 5.6.6 देखें, mysqlconfigeditor MySQL कॉन्फ़िगरेशन सुविधा नामित mysql आदेश सक्षम करें लांग-प्रारूप आदेशों की अनुमति नहीं है, न केवल शॉर्ट-फ़ॉर्मेट कमांड उदाहरण के लिए, बाहर निकलें और दोनों मान्यता प्राप्त हैं। नामों को अक्षम करने के लिए --skip-named-commands का उपयोग करें धारा 5.5.1.2 देखें, mysql कमांड इसका एक ही प्रभाव --skip-auto-rehash है के लिए विवरण देखें - ऑटो-रेहैश त्रुटियों के होने पर बीप न करें किसी भी विकल्प फ़ाइलें नहीं पढ़ा यदि कोई विकल्प फ़ाइल से अज्ञात विकल्पों को पढ़ने के कारण प्रोग्राम स्टार्टअप विफल हो जाता है, तो --कोई-डिफॉल्ट का उपयोग उन्हें पढ़ने से रोकने के लिए किया जा सकता है। अपवाद यह है कि.mylogin. cnf फ़ाइल, यदि वह मौजूद है, तो सभी मामलों में पढ़ा जाता है। यह पासवर्ड को कमांड लाइन की तुलना में एक सुरक्षित तरीके से निर्दिष्ट करने की अनुमति देता है, भले ही - no-default उपयोग किया जाता है। (.mylogin. cnf को mysqlconfigeditor उपयोगिता द्वारा बनाया गया है। अनुभाग 5.6.6 देखें, mysqlconfigeditor MySQL कॉन्फ़िगरेशन सुविधा।) उन डिवाइसेज़ को छोड़कर उन कथन को अनदेखा करें, जब डिफ़ॉल्ट डेटाबेस कमांड लाइन पर नामित है। यह विकल्प अल्पविकसित है और देखभाल के साथ उपयोग किया जाना चाहिए स्टेटमेंट फ़िल्टरिंग केवल USE स्टेटमेंट पर आधारित है प्रारंभ में, mysql इनपुट में बयान निष्पादित करता है क्योंकि कमांड लाइन पर डेटाबेस dbname निर्दिष्ट करने से इनपुट की शुरुआत में USE dbname डालने के बराबर होता है उसके बाद, प्रत्येक यूज़ स्टेटमेंट का सामना करने के लिए, mysql निम्न कथन स्वीकार करता है या अस्वीकार करता है, इस पर निर्भर करता है कि डेटाबेस नाम कमांड लाइन पर है। बयानों की सामग्री अव्यवस्थित है। मान लीजिए कि mysql को बयानों के इस सेट की प्रक्रिया में लागू किया जाता है: यदि कमांड लाइन mysql - force - one-database db1 है mysql इस प्रकार इनपुट को संभालता है: DELETE कथन निष्पादित किया जाता है क्योंकि डिफ़ॉल्ट डेटाबेस डीबी 1 है I भले ही बयान एक अलग डेटाबेस में एक तालिका का नाम देता है ड्रॉप तालिका और बनाओ टेबल बयान निष्पादित नहीं किए जाते हैं क्योंकि डिफ़ॉल्ट डेटाबेस डीबी 1 नहीं है। भले ही बयानों का नाम डीबी 1 में एक टेबल है INSERT और बनाएँ टेबल विवरण निष्पादित होते हैं क्योंकि डिफ़ॉल्ट डेटाबेस डीबी 1 है। भले ही CREATE TABLE स्टेटमेंट एक अलग डेटाबेस में एक तालिका का नाम लेता है पेजिंग क्वेरी आउटपुट के लिए दिए गए कमांड का उपयोग करें यदि कमांड छोड़ा जाता है, तो डिफ़ॉल्ट पेजर आपके पागर पर्यावरण चर का मान है। वैध पेजर्स कम हैं अधिक । बिल्ली जीटी फाइलनाम इत्यादि। यह विकल्प केवल यूनिक्स पर कार्य करता है और केवल इंटरैक्टिव मोड में है। पेजिंग को अक्षम करने के लिए, --skip-pager का उपयोग करें धारा 5.5.1.2, mysql आदेश आउटपुट पेजिंग की चर्चा आगे सर्वर से कनेक्ट होने पर उपयोग करने के लिए पासवर्ड। यदि आप लघु विकल्प प्रपत्र (-p) का उपयोग करते हैं, तो आपके पास विकल्प और पासवर्ड के बीच कोई स्थान नहीं हो सकता है। यदि आप कमांड लाइन पर --password या - p विकल्प के बाद पासवर्ड मान छोड़ देते हैं, तो mysql एक के लिए संकेत देता है कमांड लाइन पर पासवर्ड निर्दिष्ट करना असुरक्षित माना जाना चाहिए। पासवर्ड सुरक्षा के लिए धारा 7.1.2.1, एंड-यूज़र दिशानिर्देश देखें। आप कमांड लाइन पर पासवर्ड देने से बचने के लिए एक विकल्प फ़ाइल का उपयोग कर सकते हैं। विंडोज़ पर, एक नामांकित पाइप का उपयोग करके सर्वर से कनेक्ट करें। यह विकल्प केवल तभी लागू होता है यदि सर्वर नाम-पाइप कनेक्शन का समर्थन करता है। निर्देशिका जिसमें प्लगइन्स को देखने के लिए यह विकल्प निर्दिष्ट करें यदि --default-auth विकल्प का उपयोग प्रमाणीकरण प्लगइन को निर्दिष्ट करने के लिए किया जाता है लेकिन mysql इसे नहीं मिल रहा है। खंड 7.3.8, प्लगेबल प्रमाणीकरण देखें। कनेक्शन के लिए उपयोग करने के लिए TCPIP पोर्ट संख्या प्रोग्राम का नाम और सभी विकल्पों को प्रिंट करें जो इसे विकल्प फ़ाइलों से प्राप्त होता है निर्दिष्ट स्वरूप को संकेत सेट करें। डिफ़ॉल्ट mysqlgt है विशेष अनुक्रम जो प्रांप्ट को शामिल कर सकते हैं, खंड 5.5.1.2 में वर्णित हैं, mysql आदेश। सर्वर से कनेक्ट करने के लिए उपयोग करने के लिए कनेक्शन प्रोटोकॉल यह तब उपयोगी होता है जब अन्य कनेक्शन मापदंड सामान्य रूप से एक प्रोटोकॉल का उपयोग करने के लिए किसी अन्य के अलावा का कारण होगा अनुमेय मूल्यों के विवरण के लिए, 5.2.2 अनुभाग देखें, MySQL सर्वर से कनेक्ट करें। प्रत्येक क्वेरी परिणाम कैश न करें, प्रत्येक पंक्ति को प्रिंट के रूप में प्राप्त करें। अगर आउटपुट निलंबित हो जाता है तो यह सर्वर को धीमा कर सकता है। इस विकल्प के साथ, mysql इतिहास फ़ाइल का उपयोग नहीं करता है। सारणीबद्ध उत्पादन के लिए, कॉलम के आसपास मुक्केबाजी एक कॉलम मूल्य को दूसरे से अलग करने में सक्षम बनाता है नॉनटैबुलर आउटपुट के लिए (जैसे कि बैच मोड में उत्पादन किया जाता है या --बैच या --सिइलेंट ऑप्शन दिया जाता है), विशेष वर्ण आउटपुट में बच जाते हैं ताकि उन्हें आसानी से पहचाना जा सके। न्यूलाइन, टैब, एनयूएल और बैकस्लैश एन के रूप में लिखा जाता है टी। 0. और ---- विकल्प इस वर्ण से बचने को अक्षम करता है। निम्नलिखित उदाहरण तालिका से बनाम नॉनटैबुलर आउटपुट और बचने को अक्षम करने के लिए रॉ मोड का उपयोग दर्शाता है: यदि सर्वर से कनेक्शन खो जाता है, तो स्वचालित रूप से फिर से कनेक्ट करने का प्रयास करें एक बार फिर से कनेक्ट करने का प्रयास हर बार कनेक्शन खो जाता है। रीकनेक्शन के व्यवहार को दबाने के लिए, - - कपि-पुन: कनेक्ट करें केवल उन अद्यतनों को अनुमति दें और उन मानदंडों को हटाएं जो निर्दिष्ट करते हैं कि कुंजी मानों का उपयोग करके कौन सी पंक्तियों को संशोधित करें। यदि आपने यह विकल्प एक विकल्प फ़ाइल में सेट किया है, तो आप कमांड लाइन पर --safe-updates का उपयोग कर इसे ओवरराइड कर सकते हैं। धारा 5.5.1.6 देखें, mysql युक्तियाँ इस विकल्प के बारे में अधिक जानकारी के लिए पुरानी (पूर्व-4.1) प्रारूप में सर्वर पर पासवर्ड न भेजें। यह नए पासवर्ड प्रारूप का उपयोग करने वाले सर्वर को छोड़कर कनेक्शन को रोकता है। MySQL 5.7.5 के अनुसार, यह विकल्प नापसंद किया गया है और इसे भविष्य में MySQL रिलीज़ में हटा दिया जाएगा। यह हमेशा सक्षम होता है और इसे निष्क्रिय करने का प्रयास करता है (- - sip-safe-auth। - secure-auth0) एक त्रुटि उत्पन्न करता है। MySQL 5.7.5 से पहले, यह विकल्प डिफ़ॉल्ट रूप से सक्षम है लेकिन अक्षम किया जा सकता है प्री-4.1 हैशिंग विधि का उपयोग करने वाले पासवर्ड पासवर्ड की तुलना में कम सुरक्षित होते हैं जो देशी पासवर्ड हैशिंग विधि का उपयोग करते हैं और इसे टाला जाना चाहिए। प्री-4.1 पासवर्डों को बहिष्कृत कर दिया गया है और उनके लिए समर्थन MySQL 5.7.5 में हटा दिया गया है। खाता नवीनीकरण निर्देशों के लिए, धारा 7.5.1.3 देखें, पूर्व-4.1 पासवर्ड हैशिंग और mysqloldpassword प्लगइन से माइग्रेट करना दूर है। सर्वर आरएसए सार्वजनिक कुंजी युक्त फ़ाइल का पथ नाम फाइल पीईएम प्रारूप में होनी चाहिए। सार्वजनिक कुंजी को सर्वर से कनेक्शन के लिए क्लाइंट पासवर्ड के आरएसए एन्क्रिप्शन के लिए उपयोग किया जाता है जो sha256 पासवर्ड प्लगइन के साथ प्रमाणित खातों का उपयोग किया जाता है। क्लाइंट खाते के लिए यह विकल्प अनदेखा किया गया है जो उस प्लगइन के साथ प्रमाणीकृत नहीं है। अगर पासवर्ड एन्क्रिप्शन की आवश्यकता नहीं है, तो इसे भी अनदेखा किया जाता है, जैसा कि मामला क्लाइंट एक SSL कनेक्शन का उपयोग करते हुए सर्वर से जोड़ता है। आवश्यकतानुसार सर्वर सार्वजनिक कुंजी को भेजता है, इसलिए आरएसए पासवर्ड एन्क्रिप्शन होने के लिए इस विकल्प का उपयोग करना आवश्यक नहीं है। यह ऐसा करने के लिए अधिक कुशल है क्योंकि तब सर्वर को कुंजी नहीं भेजनी होगी। SHA256 पासवर्ड प्लगइन के उपयोग के संबंध में अतिरिक्त चर्चा के लिए, आरएसए सार्वजनिक कुंजी कैसे प्राप्त करें, अनुभाग 7.5.1.4, SHA-256 प्रमाणीकरण प्लगिन देखें। यह विकल्प केवल तभी उपलब्ध होता है जब MySQL को OpenSSL का उपयोग करके बनाया गया था। Windows पर, एक साझा सर्वर से साझा मेमोरी का उपयोग कर कनेक्शन के लिए उपयोग किए जाने वाले साझा-मेमोरी नाम। डिफ़ॉल्ट मान MYSQL है साझा-मेमोरी नाम केस संवेदनशील है। साझा-मेमोरी कनेक्शन सक्षम करने के लिए --shared-memory विकल्प के साथ सर्वर को शुरू करना चाहिए। कारण प्रत्येक बयान के बाद चेतावनी को दिखाया जाना चाहिए, यदि कोई भी हो यह विकल्प इंटरैक्टिव और बैच मोड पर लागू होता है SIGINT सिग्नलों को अनदेखा करें (आमतौर पर नियंत्रण सी टाइप करने का परिणाम) शांत अवस्था। कम उत्पादन का निर्माण कम और कम आउटपुट उत्पादन करने के लिए यह विकल्प कई बार दिया जा सकता है। यह विकल्प नॉनटैबुलर आउटपुट स्वरूप में और विशेष वर्णों से बचने में होता है। कच्चे मोड का उपयोग करके बचने को अक्षम किया जा सकता है ---- विकल्प के लिए विवरण देखें। परिणामों में स्तंभ नाम लिखना न दें त्रुटियों के लिए लाइन नंबर नहीं लिखें उपयोगी जब आप परिणाम फ़ाइलों की तुलना करना चाहते हैं जिसमें त्रुटि संदेश शामिल हैं I स्थानीयहोस्ट के लिए कनेक्शन के लिए यूनिक्स सॉकेट फ़ाइल का उपयोग करने के लिए, या, Windows पर, उपयोग करने के लिए नामित पाइप का नाम। विकल्प जो कि --ssl से शुरू होता है SSL के प्रयोग से सर्वर से कनेक्ट करने के लिए कि यह निर्दिष्ट करता है कि एसएसएल कुंजियों और प्रमाणपत्रों को कहाँ से पता चलता है। अनुभाग 7.4.5, सिक्योर कनेक्शन के लिए कमांड विकल्प देखें। यह विकल्प mysql को सिस्टम लॉगिंग सुविधा में इंटरैक्टिव स्टेटमेंट भेजने का कारण बनता है। यूनिक्स पर, यह विंडोज पर syslog है, यह विंडोज इवेंट लॉग है गंतव्य जहां लॉग संदेश दिखाई देते हैं वह प्रणाली निर्भर है लिनक्स पर गंतव्य अक्सर वर्ल लॉग संदेश फ़ाइल है। यहाँ --syslog का उपयोग करके लिनक्स पर उत्पन्न उत्पादन का नमूना है यह आउटपुट पठनीयता के लिए प्रारूपित है, प्रत्येक लॉग संदेश में वास्तव में एक पंक्ति होती है। MySQL 5.7.1 में --syslog विकल्प जोड़ा गया था। तालिका प्रारूप में आउटपुट प्रदर्शित करें इंटरैक्टिव उपयोग के लिए यह डिफ़ॉल्ट है, लेकिन बैच मोड में तालिका आउटपुट का उत्पादन करने के लिए उपयोग किया जा सकता है। दिए गए फ़ाइल में आउटपुट की एक प्रति जोड़ें। यह विकल्प केवल इंटरैक्टिव मोड में काम करता है धारा 5.5.1.2, mysql आदेश आगे Tee फ़ाइलों की चर्चा प्रोटोकॉल एन्क्रिप्टेड कनेक्शन के लिए ग्राहक द्वारा अनुमति दी। मान एक अल्पविराम से विभाजित सूची है जिसमें एक या अधिक प्रोटोकॉल नाम शामिल हैं। प्रोटोकॉल जो इस विकल्प के लिए नामित किया जा सकता है MySQL को संकलित करने के लिए उपयोग की जाने वाली SSL लाइब्रेरी पर निर्भर करते हैं। विवरण के लिए, अनुभाग 7.4.3, सिक्योर कनेक्शन प्रोटोकॉल और सिफर देखें। यह विकल्प MySQL 5.7.10 में जोड़ा गया था। प्रत्येक क्वेरी के बाद बफर फ़्लश करें सर्वर से कनेक्ट करते समय उपयोग करने के लिए MySQL उपयोगकर्ता नाम। वाचाल प्रकार। इस कार्यक्रम के बारे में अधिक आउटपुट का उत्पादन करें अधिक से अधिक आउटपुट बनाने के लिए यह विकल्प कई बार दिया जा सकता है। (उदाहरण के लिए, - वी-वी-वी बैच मोड में भी तालिका आउटपुट प्रारूप का उत्पादन करती है।) संस्करण की जानकारी प्रदर्शित करें और बाहर निकलें। क्वेरी क्वेरी आउटपुट पंक्ति खड़ी करें (एक पंक्ति प्रति स्तंभ मान)। इस विकल्प के बिना, आप व्यक्तिगत विवरणों के लिए उन्हें जी के साथ समाप्त करके लंबित आउटपुट निर्दिष्ट कर सकते हैं। यदि कनेक्शन स्थापित नहीं किया जा सकता है, तो प्रतीक्षा करें और निरस्त करने के बजाय पुन: प्रयास करें। एक्सएमएल आउटपुट तैयार करें आउटपुट जब - एक्सएमएल mysql मेल के साथ प्रयोग किया जाता है जो कि mysqldump --xml का होता है विवरण के लिए धारा 5.5.4, mysqldump एक डाटाबेस बैकअप प्रोग्राम देखें। एक्सएमएल आउटपुट एक्सएमएल नेमस्पेस का भी उपयोग करता है, जैसा कि यहां दिखाया गया है: आप वर्नामे वैल्यू का उपयोग कर निम्न चर सेट भी कर सकते हैं। कनेक्शन टाइमआउट से पहले सेकंड की संख्या। (डिफ़ॉल्ट मान 0 है।) ग्राहकों के संचार के लिए बफर का अधिकतम आकार। डिफ़ॉल्ट 16MB है, अधिकतम 1GB है --safe-updates का उपयोग करते समय एक पंक्ति में स्वत: सीमा जुड़ने के लिए (डिफ़ॉल्ट मूल्य 1,000,000 है।) टीसीपीआईपी और सॉकेट संचार के लिए बफर आकार। (डिफ़ॉल्ट मान 16KB है।) SELECT स्टेटमेंट के लिए स्वत: सीमा जब --safe-updates का उपयोग करते समय (डिफ़ॉल्ट मान 1000 है।) बाइनरी लॉगिंग सक्षम करें सर्वर सभी स्टेटमेंट लॉग करता है जो डेटा को बाइनरी लॉग में बदलता है, जिसका उपयोग बैकअप और प्रतिकृति के लिए किया जाता है। खंड 6.4.4, बाइनरी लॉग देखें। विकल्प मान, यदि दिया गया है, लॉग क्रम के लिए आधार नाम है सर्वर आधार नाम के लिए एक संख्यात्मक प्रत्यय जोड़कर क्रम में बाइनरी लॉग फाइल बनाता है। यह अनुशंसा की जाती है कि आप एक बेस नाम निर्दिष्ट करें (अनुभाग B.5.7, MySQL में ज्ञात मुद्दे कारण के लिए)। अन्यथा, MySQL होस्टनाम - बीन को बेस नाम के रूप में उपयोग करता है। जब सर्वर सूचकांक फ़ाइल से एक प्रविष्टि पढ़ता है, तो यह जांचता है कि प्रवेश में एक रिश्तेदार पथ है, और यदि ऐसा होता है, तो पथ के रिश्तेदार भाग को --log-bin विकल्प का उपयोग करके पूर्ण पथ के साथ बदल दिया गया है। इस तरह के मामले में एक पूर्ण पथ अपरिवर्तित रहता है, नया मार्ग या उपयोग करने के लिए पथ को सक्षम करने के लिए अनुक्रमणिका को मैन्युअल रूप से संपादित करना होगा। (MySQL के पुराने संस्करणों में, द्विपदीय लॉग या रिले लॉग फाइलों को स्थानांतरित करते समय मैन्युअल हस्तक्षेप की आवश्यकता होती है।) (बग 11745230, बग 12133) इस विकल्प को सेट करने से लॉन्गिन सिस्टम चर को चालू (या 1) पर सेट किया जा सकता है, और नहीं आधार नाम बाइनरी लॉग फ़ाइल नाम (पथ के साथ) logbinbasename सिस्टम चर के रूप में उपलब्ध है MySQL 5.7.3 और बाद में, यदि आप यह विकल्प निर्दिष्ट किए बिना --server-id निर्दिष्ट करते हैं सर्वर को शुरू करने की अनुमति नहीं है (बग 11763963, बग 56739) द्विआधारी लॉग फ़ाइल नामों के लिए सूचकांक फ़ाइल। खंड 6.4.4, बाइनरी लॉग देखें। यदि आप फ़ाइल का नाम छोड़ देते हैं, और यदि आपने एक --log-bin के साथ कोई निर्दिष्ट नहीं किया है MySQL होस्टनाम - bin. index को फ़ाइल नाम के रूप में उपयोग करता है। MySQL 5.7 संस्करण 2 द्विआधारी लॉग पंक्ति इवेंट्स का उपयोग करता है, जो MySQL 5.6.6 से पहले रिलीज़ किए गए MySQL सर्वर द्वारा पढ़ा नहीं जा सकता है। इस विकल्प को 1 को सेट करने से mysqld को संस्करण 1 लॉगिंग इवेंट्स का उपयोग करते हुए द्विपदीय लॉग लिखने का कारण बनता है, जो पिछले रिलीज में उपयोग किए जाने वाले द्विआधारी लॉग इवेंट का एकमात्र संस्करण है, और इस तरह पुराने दास द्वारा पढ़ा जा सकता है द्विआधारी लॉग का उत्पादन करता है। सेटिंग --log-bin-use-v1-row-events 0 से (डिफ़ॉल्ट) mysqld को संस्करण 2 द्विआधारी लॉग इवेंट का उपयोग करने के कारण होता है इस विकल्प के लिए प्रयुक्त मूल्य केवल-पढ़ने के लिए लॉगबीन वीविरोवेंट सिस्टम चर से प्राप्त किया जा सकता है। --log-bin-use-v1-row-events मुख्यतः हित में है जब एनडीबीईपीओसीएचटीआरएएनएस () का उपयोग करके प्रतिकृति संघर्ष का पता लगाने और रिज़ॉल्यूशन सेट करते हुए विरोधाभास का पता लगाया गया फ़ंक्शन, जिसके लिए संस्करण 2 बाइनरी लॉग पंक्ति ईवेंट की आवश्यकता होती है इस प्रकार, यह विकल्प और - nndb-log-transaction-id संगत नहीं हैं। विवरण चयन विकल्प निम्न सूची में से विकल्प बाइनरी लॉग पर कौन-से स्टेटमेंट लिखे गए हैं, और इस तरह प्रतिकृति मास्टर सर्वर द्वारा अपने दासों को भेजा जाता है स्लेव सर्वर के लिए विकल्प भी हैं जो नियंत्रित करते हैं कि स्वामी से प्राप्त किए गए कथन को निष्पादित या उपेक्षित किया जाना चाहिए। विवरण के लिए, अनुभाग 18.1.6.3, प्रतिकृति स्लेव विकल्प और चर देखें। यह विकल्प द्विपदीय लॉगिंग को उसी तरीके से प्रभावित करता है जैसे --प्लेट-डू-डीबी को प्रतिकृति को प्रभावित करता है। इस विकल्प का प्रभाव इस बात पर निर्भर करता है कि क्या बयान-आधारित या पंक्ति-आधारित लॉगिंग प्रारूप उपयोग में है, उसी तरह कि --replic-do-db का प्रभाव उस पर निर्भर करता है कि क्या बयान-आधारित या पंक्ति-आधारित प्रतिकृति है उपयोग। आपको यह ध्यान रखना चाहिए कि दिए गए बयान दर्ज करने के लिए इस्तेमाल किया गया प्रारूप जरूरी नहीं हो सकता जैसा कि बिनलफॉर्मैट के मूल्य से संकेत दिया गया हो। उदाहरण के लिए, डीडीएल विवरण जैसे कि बनाएँ तालिका और परिवर्तन कक्ष हमेशा लॉगिंग प्रारूप के प्रभाव के बिना बयान के रूप में लॉग इन होते हैं, इसलिए --binlog-do-db के लिए निम्नलिखित बयान-आधारित नियम हमेशा यह निर्धारित करने में लागू होते हैं कि बयान लॉग है। वक्तव्य-आधारित लॉगिंग केवल उन बयानों को द्विआधारी लॉग में लिखा जाता है, जहां डिफ़ॉल्ट डाटाबेस (जो कि, यू.एस. ई. द्वारा चुने गए एक) है dbname एक से अधिक डेटाबेस निर्दिष्ट करने के लिए, इस विकल्प का उपयोग कई बार करें, प्रत्येक डेटाबेस के लिए एक बार, हालांकि, ऐसा करने से आप एक अलग डाटाबेस (या कोई डेटाबेस) का चयन नहीं करते हैं, जैसे कि अपडेटेड somedb. sometable SET foobar जैसे लॉग-इन करने के लिए cross-database स्टेटमेंट का कारण नहीं है। । एकाधिक डेटाबेस निर्दिष्ट करने के लिए आपको इस विकल्प के कई उदाहरणों का उपयोग करना होगा। चूंकि डेटाबेस नामों में अल्पविराम शामिल हो सकते हैं, यदि आप अल्पविराम से अलग होने की सूची प्रदान करते हैं, तो सूची को एक डेटाबेस के नाम के रूप में माना जाएगा। क्या उदाहरण के रूप में काम नहीं करता है, जैसा आप उम्मीद कर सकते हैं कि वक्तव्य-आधारित लॉगिंग का उपयोग करते समय: यदि सर्वर को --binlog-do-dbsales के साथ शुरू किया गया है और आप निम्न कथन जारी करते हैं, तो UPDATE स्टेटमेंट लॉग नहीं है: इसके लिए मुख्य कारण बस डिफ़ॉल्ट डेटाबेस व्यवहार की जांच करें कि यह अकेले कथन से मुश्किल है कि यह जानने के लिए कि क्या इसे दोहराया जाना चाहिए (उदाहरण के लिए, यदि आप एकाधिक-तालिका डीईएलईईई स्टेटमेंट्स का उपयोग कर रहे हैं या एकाधिक-डेटाबेस अद्यतन विवरण जो एकाधिक डेटाबेस में कार्य करते हैं) यदि कोई ज़रूरत नहीं है तो सभी डेटाबेस के बजाय केवल डिफ़ॉल्ट डेटाबेस की जांच करना भी तेज़ है एक और मामला जो स्वयं स्पष्ट नहीं हो सकता है, जब एक निर्दिष्ट डेटाबेस को दोहराया जाता है, भले ही यह विकल्प सेट करते समय निर्दिष्ट नहीं किया गया हो। अगर सर्वर --binlog-do-dbsales के साथ शुरू किया गया है। निम्न अद्यतन कथन लॉग इन किया जाता है भले ही कीमतों को शामिल नहीं किया गया था - binolog-do-db सेटिंग चूंकि UPDATE स्टेटमेंट जारी किए जाने पर बिक्री डिफ़ॉल्ट डेटाबेस है, इसलिए अद्यतन की गई है। रो-आधारित लॉगिंग लॉगिंग डेटाबेस dbname के लिए प्रतिबंधित है केवल dbname से संबंधित तालिकाओं में परिवर्तन लॉग होता है डिफ़ॉल्ट डेटाबेस का इस पर कोई प्रभाव नहीं पड़ता है। मान लीजिए कि सर्वर --binlog-do-dbsales और पंक्ति-आधारित लॉगिंग के साथ शुरू किया गया है, और फिर निम्नलिखित कथन निष्पादित हैं: बिक्री डेटाबेस में फरवरी तालिका में परिवर्तन UPDATE कथन के अनुसार लॉग इन हैं यह होता है कि USE का बयान जारी किया गया था या नहीं। हालांकि, पंक्ति-आधारित लॉगिंग प्रारूप और --binlog-do-dbsales का उपयोग करते समय निम्न अद्यतन द्वारा किए गए परिवर्तन लॉग नहीं हैं: यहां तक ​​कि अगर USE की कीमतों का विवरण USE बिक्री में बदल दिया गया था UPDATE बयान प्रभाव अब भी बाइनरी लॉग को नहीं लिखा जाएगा पंक्ति-आधारित लॉगिंग के विरोध में बयान-आधारित लॉगिंग के लिए --binlog-do-db हैंडलिंग में एक और महत्वपूर्ण अंतर बयान के संबंध में होता है जो एकाधिक डेटाबेस को संदर्भित करता है। मान लीजिए कि सर्वर --binlog-do-dbdb1 के साथ शुरू हुआ है और निम्नलिखित कथन निष्पादित होते हैं: यदि आप कथन-आधारित लॉगिंग का उपयोग कर रहे हैं, तो दोनों तालिकाओं के अपडेट बाइनरी लॉग में लिखे गए हैं। हालांकि, पंक्ति-आधारित प्रारूप का उपयोग करते समय, केवल तालिका 1 में हुए बदलाव तालिका 2 लॉग हैं एक अलग डेटाबेस में है, इसलिए यह UPDATE द्वारा परिवर्तित नहीं किया गया है। अब मान लें कि, यू.एस. ई. डीबी 1 कथन के बजाय, यू.एस. ई. डीबी 4 कथन का इस्तेमाल किया गया था: इस मामले में, स्टेटमेंट आधारित लॉगिंग का उपयोग करते समय, यूपी स्टेटमेंट बयान द्विआधारी लॉग में नहीं लिखा गया है। हालांकि, पंक्ति-आधारित लॉगिंग का उपयोग करते समय, तालिका 1 में परिवर्तन लॉग होता है, लेकिन दूसरे शब्दों में तालिका 2 के लिए नहीं, केवल --binlog-do-db नामक डेटाबेस में तालिका में परिवर्तन होता है, और डिफ़ॉल्ट डेटाबेस की पसंद होती है इस व्यवहार पर कोई प्रभाव नहीं है यह विकल्प द्विपदीय लॉगिंग को उसी तरीके से प्रभावित करता है जिस तरह से - प्लेट-अनवर-डीबी प्रतिकृति को प्रभावित करता है इस विकल्प का प्रभाव इस बात पर निर्भर करता है कि क्या बयान-आधारित या पंक्ति-आधारित लॉगिंग प्रारूप उपयोग में है, उसी तरह कि - replicate-ignore-db का प्रभाव उस पर निर्भर करता है कि क्या बयान-आधारित या पंक्ति-आधारित प्रतिकृति है उपयोग। आपको यह ध्यान रखना चाहिए कि दिए गए बयान दर्ज करने के लिए इस्तेमाल किया गया प्रारूप जरूरी नहीं हो सकता जैसा कि बिनलफॉर्मैट के मूल्य से संकेत मिलता है। उदाहरण के लिए, डीडीएल विवरण जैसे कि बनाएँ तालिका और परिवर्तन कक्ष हमेशा लॉगिंग प्रारूप के प्रभाव के बिना, बयान के रूप में लॉग इन होते हैं, इसलिए --binlog-ignore-db के लिए निम्नलिखित बयान-आधारित नियम हमेशा यह निर्धारित करने में लागू होते हैं कि बयान लॉग है। वक्तव्य-आधारित लॉगिंग सर्वर को किसी भी वक्तव्य को लॉग इन करने के लिए कहता है, जहां डिफ़ॉल्ट डाटाबेस (जो कि, USE द्वारा चुने गए एक) dbname है MySQL 5.7.2 से पहले, इस विकल्प के कारण कोई भी बयान दर्ज नहीं किया गया है जिसमें पूरी तरह से योग्य तालिका नाम शामिल हैं, जो कि कोई डिफ़ॉल्ट डेटाबेस निर्दिष्ट नहीं है (यानी, जब चयन करें डेटाबेस () को वापस लौटाया जाता है)। MySQL 5.7.2 और बाद में, जब कोई डिफ़ॉल्ट डाटाबेस नहीं होता है, तो कोई - binlog-ignore-db विकल्प लागू नहीं होते हैं, और ऐसे स्टेटमेंट हमेशा लॉग इन होते हैं। (बग 11829838, बग 60188) पंक्ति आधारित प्रारूप। सर्वर को डेटाबेस dbname में किसी भी तालिकाओं के अद्यतनों को लॉग इन करने के लिए कहता है। वर्तमान डेटाबेस का कोई प्रभाव नहीं है कथन-आधारित लॉगिंग का उपयोग करते समय, निम्न उदाहरण काम नहीं करता जैसा कि आप अपेक्षा कर सकते हैं मान लीजिए कि सर्वर - binlog-ignore-dbsales के साथ शुरू किया गया है और आप निम्नलिखित कथन जारी करते हैं: UPDATE स्टेटमेंट ऐसे किसी एक मामले में लॉग ऑन किया गया है क्योंकि - binlog-ignore-db केवल डिफ़ॉल्ट डेटाबेस पर लागू होता है (USE कथन द्वारा निर्धारित )। क्योंकि बिक्री डेटाबेस स्पष्ट रूप से बयान में निर्दिष्ट किया गया था, बयान फ़िल्टर नहीं किया गया है। हालांकि, पंक्ति-आधारित लॉगिंग का उपयोग करते समय, अद्यतन विवरण प्रभाव बाइनरी लॉग पर नहीं लिखा जाता है, जिसका अर्थ है कि बिक्री में कोई परिवर्तन नहीं हुआ। उदाहरण के लिए इस तालिका में प्रवेश किया जाता है, - binlog-ignore-dbsales बाइनरी लॉगिंग के प्रयोजनों के लिए बेस्ड होने के लिए बिक्री डेटाबेस की स्वामी कॉपी में टेबल अनदेखा करने के लिए एक से अधिक डेटाबेस निर्दिष्ट करने के लिए, प्रत्येक विकल्प के लिए प्रत्येक बार एक बार इस विकल्प का उपयोग करें चूंकि डेटाबेस नामों में अल्पविराम शामिल हो सकते हैं, यदि आप अल्पविराम से अलग होने की सूची प्रदान करते हैं, तो सूची को एक डेटाबेस के नाम के रूप में माना जाएगा। यदि आप क्रॉस-डेटाबेस अपडेट का उपयोग कर रहे हैं, तो आपको इस विकल्प का उपयोग नहीं करना चाहिए और आप ये अपडेट लॉग इन नहीं करना चाहते हैं। चेकसम विकल्प MySQL 5.7 बाइयन लॉग चेकसमों के पढ़ने और लिखने का समर्थन करता है। These are enabled using the two options listed here: Due to concurrency issues, a slave can become inconsistent when a transaction contains updates to both transactional and nontransactional tables. MySQL tries to preserve causality among these statements by writing nontransactional statements to the transaction cache, which is flushed upon commit. However, problems arise when modifications done to nontransactional tables on behalf of a transaction become immediately visible to other connections because these changes may not be written immediately into the binary log. The binlogdirectnontransactionalupdates variable offers one possible workaround to this issue. By default, this variable is disabled. Enabling binlogdirectnontransactionalupdates causes updates to nontransactional tables to be written directly to the binary log, rather than to the transaction cache. binlogdirectnontransactionalupdates works only for statements that are replicated using the statement-based binary logging format that is, it works only when the value of binlogformat is STATEMENT. or when binlogformat is MIXED and a given statement is being replicated using the statement-based format. This variable has no effect when the binary log format is ROW. or when binlogformat is set to MIXED and a given statement is replicated using the row-based format. Before enabling this variable, you must make certain that there are no dependencies between transactional and nontransactional tables an example of such a dependency would be the statement INSERT INTO myisamtable SELECT FROM innodbtable. Otherwise, such statements are likely to cause the slave to diverge from the master. In MySQL 5.7, this variable has no effect when the binary log format is ROW or MIXED. (Bug 51291) This variable sets the binary logging format, and can be any one of STATEMENT. ROW. or MIXED. See Section 18.2.1, Replication Formats. binlogformat is set by the --binlog-format option at startup, or by the binlogformat variable at runtime. While you can change the logging format at runtime, it is not recommended that you change it while replication is ongoing. This is due in part to the fact that slaves do not honor the masters binlogformat setting a given MySQL Server can change only its own logging format. Prior to MySQL 5.7.7, the default format was STATEMENT. In MySQL 5.7.7 and later the default is ROW. Exception . In MySQL Cluster, the default is MIXED statement-based replication is not supported for MySQL Cluster. You must have the SUPER privilege to set either the global or session binlogformat value. The rules governing when changes to this variable take effect and how long the effect lasts are the same as for other MySQL server system variables. For more information, see Section 14.7.4.1, SET Syntax for Variable Assignment. When MIXED is specified, statement-based replication is used, except for cases where only row-based replication is guaranteed to lead to proper results. For example, this happens when statements contain user-defined functions (UDF) or the UUID() function. An exception to this rule is that MIXED always uses statement-based replication for stored functions and triggers. There are exceptions when you cannot switch the replication format at runtime: From within a stored function or a trigger. If the session is currently in row-based replication mode and has open temporary tables. From within a transaction. Trying to switch the format in those cases results in an error. The binary log format affects the behavior of the following server options: noblob (Log all columns, except for unneeded BLOB and TEXT columns) In MySQL row-based replication, each row change event contains two images, a before image whose columns are matched against when searching for the row to be updated, and an after image containing the changes. Normally, MySQL logs full rows (that is, all columns) for both the before and after images. However, it is not strictly necessary to include every column in both images, and we can often save disk, memory, and network usage by logging only those columns which are actually required. When deleting a row, only the before image is logged, since there are no changed values to propagate following the deletion. When inserting a row, only the after image is logged, since there is no existing row to be matched. Only when updating a row are both the before and after images required, and both written to the binary log. For the before image, it is necessary only that the minimum set of columns required to uniquely identify rows is logged. If the table containing the row has a primary key, then only the primary key column or columns are written to the binary log. Otherwise, if the table has a unique key all of whose columns are NOT NULL. then only the columns in the unique key need be logged. (If the table has neither a primary key nor a unique key without any NULL columns, then all columns must be used in the before image, and logged.) In the after image, it is necessary to log only the columns which have actually changed. You can cause the server to log full or minimal rows using the binlogrowimage system variable. This variable actually takes one of three possible values, as shown in the following list: full. Log all columns in both the before image and the after image. minimal. Log only those columns in the before image that are required to identify the row to be changed log only those columns in the after image that are actually changed. noblob. Log all columns (same as full ), except for BLOB and TEXT columns that are not required to identify rows, or that have not changed. This variable is not supported by MySQL Cluster setting it has no effect on the logging of NDB tables. The default value is full. In MySQL 5.5 and earlier, full row images are always used for both before images and after images. If you need to replicate from a newer master to a slave running MySQL 5.5 or earlier, the master should always use this value. When using minimal or noblob. deletes and updates are guaranteed to work correctly for a given table if and only if the following conditions are true for both the source and destination tables: All columns must be present and in the same order each column must use the same data type as its counterpart in the other table. The tables must have identical primary key definitions. (In other words, the tables must be identical with the possible exception of indexes that are not part of the tables primary keys.) If these conditions are not met, it is possible that the primary key column values in the destination table may prove insufficient to provide a unique match for a delete or update. In this event, no warning or error is issued the master and slave silently diverge, thus breaking consistency. Setting this variable has no effect when the binary logging format is STATEMENT. When binlogformat is MIXED. the setting for binlogrowimage is applied to changes that are logged using row-based format, but this setting no effect on changes logged as statements. Setting binlogrowimage on either the global or session level does not cause an implicit commit this means that this variable can be changed while a transaction is in progress without affecting the transaction. Shows whether Version 2 binary logging is in use. A value of 1 shows that the server is writing the binary log using Version 1 logging events (the only version of binary log events used in previous releases), and thus producing a binary log that can be read by older slaves. 0 indicates that Version 2 binary log events are in use. This variable is read-only. To switch between Version 1 and Version 2 binary event binary logging, it is necessary to restart mysqld with the --log-bin-use-v1-row-events option. Other than when performing upgrades of MySQL Cluster Replication, --log-bin-use-v1-events is chiefly of interest when setting up replication conflict detection and resolution using NDBEPOCHTRANS(). which requires Version 2 binary row event logging. Thus, this option and --ndb-log-transaction-id are not compatible. MySQL Cluster NDB 7.5 uses Version 2 binary log row events by default. You should keep this mind when planning upgrades or downgrades, and for setups using MySQL Cluster Replication. Whether updates received by a slave server from a master server should be logged to the slaves own binary log. Binary logging must be enabled on the slave for this variable to have any effect. See Section 18.1.6, Replication and Binary Logging Options and Variables. If error 1592 is encountered, controls whether the generated warnings are added to the error log or not. Enabling this variable causes the master to examine checksums when reading from the binary log. masterverifychecksum is disabled by default in this case, the master uses the event length from the binary log to verify events, so that only complete events are read from the binary log. If a transaction requires more than this many bytes of memory, the server generates a Multi-statement transaction required more than maxbinlogcachesize bytes of storage error. The minimum value is 4096. The maximum possible value is 16EB (exabytes). The maximum recommended value is 4GB this is due to the fact that MySQL currently cannot work with binary log positions greater than 4GB. maxbinlogcachesize sets the size for the transaction cache only the upper limit for the statement cache is governed by the maxbinlogstmtcachesize system variable. In MySQL 5.7, the visibility to sessions of maxbinlogcachesize matches that of the binlogcachesize system variable in other words, changing its value effects only new sessions that are started after the value is changed. If a write to the binary log causes the current log file size to exceed the value of this variable, the server rotates the binary logs (closes the current file and opens the next one). The minimum value is 4096 bytes. The maximum and default value is 1GB. A transaction is written in one chunk to the binary log, so it is never split between several binary logs. Therefore, if you have big transactions, you might see binary log files larger than maxbinlogsize. If maxrelaylogsize is 0, the value of maxbinlogsize applies to relay logs as well. If nontransactional statements within a transaction require more than this many bytes of memory, the server generates an error. The minimum value is 4096. The maximum and default values are 4GB on 32-bit platforms and 16EB (exabytes) on 64-bit platforms. maxbinlogstmtcachesize sets the size for the statement cache only the upper limit for the transaction cache is governed exclusively by the maxbinlogcachesize system variable. Permitted Values (32-bit platforms) Permitted Values (64-bit platforms) Controls the number of binary log commit groups to collect before synchronizing the binary log to disk. When syncbinlog0. the binary log is never synchronized to disk, and when syncbinlog is set to a value greater than 0 this number of binary log commit groups is periodically synchronized to disk. When syncbinlog1. all transactions are synchronized to the binary log before they are committed. Therefore, even in the event of an unexpected restart, any transactions that are missing from the binary log are only in prepared state. This causes the servers automatic recovery routine to roll back those transactions. This guarantees that no transaction is lost from the binary log, and is the safest option. However this can have a negative impact on performance because of an increased number of disk writes. Using a higher value improves performance, but with the increased risk of data loss. When syncbinlog0 or syncbinlog is greater than 1, transactions are committed without having been synchronized to disk. Therefore, in the event of a power failure or operating system crash, it is possible that the server has committed some transactions that have not been synchronized to the binary log. Therefore it is impossible for the recovery routine to recover these transactions and they will be lost from the binary log. Prior to MySQL 5.7.7, the default value of syncbinlog was 0, which configures no synchronizing to diskin this case, the server relies on the operating system to flush the binary logs contents from time to time as for any other file. MySQL 5.7.7 and later use a default value of 1, which is the safest choice, but as noted above can impact performance. Sign Up Login You must be logged in to post a comment. USA: 1-866-221-0634 Canada: 1-866-221-0634 Germany: 49 89 143 01280 France: 33 1 57 60 83 57 Italy: 39 02 249 59 120 UK: 44 207 553 8447 Japan: 0120-065556 China: 10800-811-0823 India: 0008001005870

No comments:

Post a Comment