गोले में पासवर्ड के लिए संकेत देना mysqldump


9

मैंने एक विशिष्ट mysql डेटाबेस को डंप करने के लिए एक सरल शेल स्क्रिप्ट लिखी। समस्या यह है कि मुझे एक पासवर्ड के लिए संकेत दे रहा है, भले ही मैं प्रदान करता हूं। अगर वह मायने रखता है तो mysql db 5.0.27 संस्करण है। यहाँ विशिष्ट लाइन का उपयोग कर रहा हूँ।

$MYSQLDUMP -u backup -p$MyPass $DB > $DEST/$FILE

मैंने कई बदलावों की कोशिश की, लेकिन कोई फायदा नहीं हुआ।

जवाबों:


4

मैं दांव लगाऊंगा कि $MyPassआपकी स्क्रिप्ट में ठीक से सेट नहीं किया जा रहा है। यदि mysql कमांड-लाइन टूल में -pसे कोई भी एक पासवर्ड प्राप्त नहीं होता है , तो वे मानते हैं कि उन्हें पासवर्ड के लिए संकेत देना चाहिए। यदि, दूसरी ओर, आपने एक गलत पासवर्ड (या गलत उपयोगकर्ता नाम या समान) दिया है, तो यह कनेक्ट करने में विफल होगा।

इसलिए, मेरा सुझाव echoहै कि उस पंक्ति के प्रारंभ में एक कमांड रखें और अपनी स्क्रिप्ट को फिर से चलाएं, जैसे:

echo $MYSQLDUMP -u backup -p$MyPass $DB

आउटपुट पुनर्निर्देशन को हटाना न भूलें।


1
doh, यह बेवकूफ वैरिएबल था, कैप में पास हुआ था जब इसे ऊपर की लाइन में बनाम लोअरकेस में सेट किया गया था। धन्यवाद दोस्तों
aduljr

18

एक बेहतर समाधान एक कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता नाम और पासवर्ड को संग्रहीत करना और उस कॉन्फ़िगरेशन फ़ाइल को इंगित करना होगा। यह कमांड लाइन में होने से जो कोई भी पीएस चला सकता है वह आपके सर्वर के लिए पासवर्ड खोज सकता है।

--defaults-extra-file=/pathto/database.cnfMysql डंप को पास करें ।

कॉन्फ़िगरेशन फ़ाइल को इस तरह देखना होगा। फ़ाइल सिस्टम अनुमतियाँ सेट करें ताकि केवल बैकअप प्रक्रिया कॉन्फ़िगरेशन फ़ाइल को खोल सके।

[client]
host     = servername.domain.tld
user     = backup
password = strongpassword

अद्यतन (2016-06-29) यदि आप mysql 5.6.6 या अधिक चला रहे हैं, तो आपको mysql_config_editor टूल को देखना चाहिए जो आपको एन्क्रिप्टेड फ़ाइल में क्रेडेंशियल्स संग्रहीत करने की अनुमति देता है । मेरे लिए यह उल्लेख करने के लिए जियोवानी का धन्यवाद ।


एक बैकअप करने के लिए केवल पर्याप्त अनुमति के साथ उस डेटाबेस के लिए एक विशिष्ट उपयोगकर्ता। इस सर्वर तक केवल दो लोगों की पहुंच है, मेरी और एक अन्य व्यक्ति की। लेकिन मैं उस cnf फ़ाइल विचार का उपयोग करूँगा। उस विकल्प के बारे में कभी नहीं पता था। धन्यवाद
वयस्क

3
मुझे पता है कि यह एक पुराना उत्तर है, लेकिन फिर भी यह दिखाता है कि पासवर्ड को सुरक्षित रूप से कैसे पारित किया जाए और यह अन्य पोस्ट से भी जुड़ा हुआ है। संस्करण ५.५ का उपयोग करते हुए, मुझे कॉन्फ़िगरेशन फ़ाइल में सिंगल टिक में स्ट्रॉन्गवर्ल्ड को एनकोड करना था, जैसे कि मेरा पासवर्ड है aoeu1234, मेरी कॉन्फ़िगरेशन फ़ाइल है password = 'aoeu1234'; अन्यथा आपको अनधिकृत त्रुटि मिलेगी।
डेमन

आश्चर्य है कि वहाँ एक समाधान है कि एक .cnf फ़ाइल में cleartext में एक पासवर्ड शामिल नहीं है।
बॉब स्टीन

@Zoredache, कैसे "जो कोई ps चला सकते हैं आपके सर्वर के लिए पासवर्ड मिल सकता है?"
पचेरियर

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