जब मैंने टर्मिनल के भीतर MySQL पर निम्न कमांड चलाने की कोशिश की:
mysql -u $user -p$password -e "statement"
निष्पादन उम्मीद के मुताबिक काम करता है, लेकिन यह हमेशा एक चेतावनी जारी करता है:
चेतावनी: कमांड लाइन इंटरफ़ेस पर पासवर्ड का उपयोग करना असुरक्षित हो सकता है।
हालाँकि, मुझे पर्यावरण चर ( $password
) जो मेरे पासवर्ड को संग्रहीत करता है, का उपयोग करके उपरोक्त कथन का संचालन करना होगा, क्योंकि मैं कमांड को टर्मिनल के भीतर से bash स्क्रिप्ट में चलना चाहता हूं, और मुझे निश्चित रूप से एक शीघ्र दिखाने की प्रतीक्षा करने का विचार पसंद नहीं है और मुझे एक ही स्क्रिप्ट में 50 या 100 बार अपना पासवर्ड डालने के लिए मजबूर किया। तो यहाँ मेरा सवाल है:
क्या चेतावनी को दबाना संभव है? जैसा कि मैंने कहा, कमांड ठीक से काम करता है, लेकिन जब मैं लूप ओवर करता हूं और 50 या 100 बार कमांड चलाता है, तो विंडो काफी गड़बड़ हो जाती है।
क्या मुझे चेतावनी संदेश का पालन करना चाहिए और अपनी स्क्रिप्ट में अपना पासवर्ड नहीं लिखना चाहिए? अगर ऐसा है, तो क्या मुझे हर बार अपना पासवर्ड टाइप करना पड़ता है, जब प्रॉम्प्ट मुझे ऐसा करने के लिए मजबूर करता है?
रनिंग man mysql
केवल कहने में मदद नहीं करता है
--show-warnings
यदि कोई हो तो प्रत्येक विवरण के बाद दिखाई जाने वाली चेतावनी। यह विकल्प इंटरैक्टिव और बैच मोड पर लागू होता है।
और कार्यक्षमता को बंद करने के बारे में कुछ भी उल्लेख नहीं करता है, अगर मैं कुछ याद नहीं कर रहा हूं।
मैं OS X 10.9.1 Mavericks पर हूं और होमब्रे से MySQL 5.6 का उपयोग करता हूं।
pexcept
। यह टर्मिनल इंसर्शन कर सकता है और फीडबैक भी दे सकता है जो कमांड देता है। इस तरह से आप उस वर्बोज़ आउटपुट और वास्तविक आउटपुट की स्ट्रिप को छोड़ सकते हैं जो आप चाहते हैं :)
[client]
password=my_password
में स्टोर करें~/.my.cnf
। निश्चित रूप से इसके कुछ सुरक्षा निहितार्थ भी हैं, लेकिन कम से कम यह किसी के लिए भी सुलभ नहीं है जो इसे चला सकता हैps
, और आपके पास फ़ाइल अनुमतियों के साथ इस पर नियंत्रण है।