MySQL क्लाइंट पासवर्ड, या सेटअप पासवर्ड कम प्रमाणीकरण स्टोर करें


11

मैं mysql कमांड लाइन क्लाइंट का उपयोग कर रहा हूं और मुझे क्लाइंट को शुरू करने के लिए हर बार पासवर्ड प्रदान करने की आवश्यकता नहीं है। मेरे विकल्प क्या हैं?


कृपया अपने पिछले कुछ प्रश्नों के उत्तर स्वीकार करें, क्योंकि ऐसा प्रतीत होता है कि उन उत्तरों में से कई सही समाधान हैं - उत्तर के बाईं ओर उल्लिखित चेकमार्क पर क्लिक करें।
शेन मैडेन 20

जवाबों:


15

.my.cnfअपनी होम डायरेक्टरी में एक फाइल बनाएं , जो इस तरह दिखे। सुनिश्चित करें कि फ़ाइल सिस्टम अनुमतियाँ ऐसी सेट की गई हैं कि केवल स्वामी उपयोगकर्ता ही इसे (0600) पढ़ सकते हैं।

[client]
host     = localhost
user     = username.
password = thepassword
socket   = /var/run/mysqld/mysqld.sock
#database = mysql

चूँकि आपने अपने प्रश्न mysqldump को भी टैग किया है इसलिए आपको इस प्रश्न को देखना चाहिए।

रूट पासवर्ड के बिना क्रॉन जॉब में mysqldump का उपयोग करना

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


यह बहुत अच्छा काम किया .. थैंक्स
ट्रिप

यदि उत्तर ने आपकी समस्या हल कर दी है तो आपको इसे स्वीकार करने के लिए चेक मार्क पर क्लिक करना चाहिए।
Zoredache

1
यह पासवर्ड को सादे पाठ के रूप में संग्रहीत करेगा, एक अभ्यास जिसे मैं सुरक्षा के दृष्टिकोण से हतोत्साहित करूंगा।
जियोवानी

@Giovanni यकीन है, हालांकि mysql_config_editor आप अपने जवाब में उल्लेख करते हैं, जबकि उपयोगी नहीं है जब तक आप 5.6.6 चल रहे हैं। आज भी ऐसे वितरण हैं जो पुराने संस्करण हैं।
जोर्डैच

लेकिन यह विंडोज पर कैसे किया जाता है?
वोल्फपैक'08

9

आप mysql_config_editorएक नामांकित लॉगिन पथ फ़ाइल में प्रमाणीकरण क्रेडेंशियल्स को संग्रहीत करने के लिए उपयोगिता का उपयोग कर सकते हैं .mylogin.cnf

क्रेडेंशियल्स चलाने का एक नया सेट बनाने के लिए:

mysql_config_editor set --host=db.host.org --user=dbuser --password

और संकेत दिए जाने पर अपना पासवर्ड दर्ज करें।

यह आपके प्रमाणीकरण क्रेडेंशियल को डिफ़ॉल्ट clientलॉगिन पथ में संग्रहीत करेगा ।

आप एक अलग --login-pathविकल्प निर्दिष्ट करके कई प्रमाणीकरण क्रेडेंशियल्स संग्रहीत कर सकते हैं :

mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password

डिफ़ॉल्ट रूप से, mysqlग्राहक पढ़ता है [client]और [mysql], दूसरा विकल्प फाइलों से समूहों तो यह रूप में अच्छी तरह लॉगिन पथ फ़ाइल से उन्हें पढ़ता है। एक --login-pathविकल्प के साथ , क्लाइंट प्रोग्राम इसके अलावा लॉगिन पथ फ़ाइल से नामांकित लॉगिन पथ को पढ़ते हैं। अन्य विकल्प फ़ाइलों से पढ़े गए विकल्प समूह समान रहते हैं। इस आदेश पर विचार करें:

mysql --login-path=db2

mysqlग्राहक पढ़ता है [client]और [mysql]दूसरा विकल्प फाइलों से, और [client], [mysql]और [mypath]लॉगिन पथ फ़ाइल से।

कॉन्फ़िगरेशन फ़ाइल चलाने में संग्रहीत सभी जानकारी को प्रिंट करने के लिए:

mysql_config_editor print --all=true

उपयोगिता के बारे में अधिक जानकारी "mysql_config_editor - MySQL कॉन्फ़िगरेशन उपयोगिता" पर मिल सकती है


2

हमें यह दिखावा नहीं करना चाहिए कि .mylogin.cnf बिल्कुल सुरक्षित है क्योंकि मैं my_print_defaults -s [use your login-path]उस पासवर्ड को सादे पाठ में प्रदर्शित करने के लिए उपयोग कर सकता हूं । यही कारण है कि MariaDB इस 'सुरक्षा को अस्पष्टता' के दृष्टिकोण का समर्थन नहीं करता है।


तो इस सवाल का जवाब क्या है ?
पियरे.व्रींस

0

एक अन्य तरीका है, ऊपर वर्णित तरीकों के लिए ओर्थोगोनल, लेकिन यह एक सुरक्षा जोखिम हो सकता है अगर कोई और आपके मॉनिटर को देख रहा है, या यदि आप अपना इतिहास सहेज रहे हैं

फिर भी यह एक विकल्प है, जो आपको संकेत देने से रोकेगा, और एक जो मैं थ्रो-डॉक इमेज में इस्तेमाल करता हूं और ऐसे…।

mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.

आपको संकेत नहीं दिया जाएगा, यदि आप चाहें तो आप शेल में एक अस्थायी उपनाम सेट कर सकते हैं।

सावधानी से प्रयोग करें।

mysql Ver 14.14 डिस्ट्रीब्यूट 5.5.61-38.13, डेबियन-लाइनक्स-गनु (x86_64) के लिए रीडलाइन 5.1 का उपयोग कर

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