मैं mysql कमांड लाइन क्लाइंट का उपयोग कर रहा हूं और मुझे क्लाइंट को शुरू करने के लिए हर बार पासवर्ड प्रदान करने की आवश्यकता नहीं है। मेरे विकल्प क्या हैं?
मैं mysql कमांड लाइन क्लाइंट का उपयोग कर रहा हूं और मुझे क्लाइंट को शुरू करने के लिए हर बार पासवर्ड प्रदान करने की आवश्यकता नहीं है। मेरे विकल्प क्या हैं?
जवाबों:
.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 टूल को देखना चाहिए जो आपको एन्क्रिप्टेड फ़ाइल में क्रेडेंशियल्स संग्रहीत करने की अनुमति देता है । मुझे यह उल्लेख करने के लिए जियोवानी का धन्यवाद ।
आप 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 कॉन्फ़िगरेशन उपयोगिता" पर मिल सकती है ।
हमें यह दिखावा नहीं करना चाहिए कि .mylogin.cnf बिल्कुल सुरक्षित है क्योंकि मैं my_print_defaults -s [use your login-path]
उस पासवर्ड को सादे पाठ में प्रदर्शित करने के लिए उपयोग कर सकता हूं । यही कारण है कि MariaDB इस 'सुरक्षा को अस्पष्टता' के दृष्टिकोण का समर्थन नहीं करता है।
एक अन्य तरीका है, ऊपर वर्णित तरीकों के लिए ओर्थोगोनल, लेकिन यह एक सुरक्षा जोखिम हो सकता है अगर कोई और आपके मॉनिटर को देख रहा है, या यदि आप अपना इतिहास सहेज रहे हैं ।
फिर भी यह एक विकल्प है, जो आपको संकेत देने से रोकेगा, और एक जो मैं थ्रो-डॉक इमेज में इस्तेमाल करता हूं और ऐसे…।
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 का उपयोग कर