आप लिनक्स सर्वर पर कमांड लाइन से MySQL क्रेडेंशियल्स का परीक्षण कैसे करते हैं?
आप लिनक्स सर्वर पर कमांड लाइन से MySQL क्रेडेंशियल्स का परीक्षण कैसे करते हैं?
जवाबों:
@ फिल का उत्तर और @ मिस्टरबर्नस्टोन का उत्तर आपके प्रश्न के लिए पर्याप्त होना चाहिए, इसलिए उन दोनों के लिए +1।
निम्नलिखित के लिए, मान लें कि आप उपयोगकर्ता नाम के साथ लॉग इन कर रहे हैं myuser
एक बार जब आप mysql से जुड़ जाते हैं, तो आपको निम्नलिखित प्रश्न चलाने चाहिए:
SELECT USER(),CURRENT_USER();
कभी-कभी, वे अलग होते हैं। यह आपको इस बात की जानकारी दे सकता है कि आपको mysql में प्रवेश करने की अनुमति क्यों है।
यहाँ एक और क्वेरी है जिसे आपको चलाने की आवश्यकता है:
SELECT CONCAT('''',user,'''@''',host,'''') dbuser,password
FROM mysql.user WHERE user='myuser';
यह आपको उन तरीकों को दिखाएगा जिनमें आपको प्रवेश करने की अनुमति है myuser
।
यदि आप देखते हैं 'myuser'@'localhost'
, तो आप DB सर्वर के भीतर से प्रमाणित कर सकते हैं।
यदि आप देखते हैं 'myuser'@'127.0.0.1'
और नहीं देखते हैं 'myuser'@'localhost'
, तो आप DB सर्वर के भीतर से फिर से प्रमाणित कर सकते हैं लेकिन आपको --protocol=tcp
कमांड लाइन से निर्दिष्ट करना होगा ।
यदि आप देखते हैं 'myuser'@'%'
, तो आप किसी भी सर्वर से दूरस्थ लॉगिन कर सकते हैं।
यदि आप देखते हैं 'myuse'r@'10.20.30,%'
, तो आप केवल 10.20.30% से दूरस्थ लॉगिन कर सकते हैं।
एक बार जब आप देखते हैं कि 'mysql.user' में आपके उपयोगकर्ता के लिए क्या है, तो आप एक तरह से लॉगरिन से मायूसर को अनुमति देने या प्रतिबंधित करना चाह सकते हैं, दूसरे में नहीं।
यदि आप केवल यह जानना चाहते हैं कि पासवर्ड किसके लिए myuser
है whateverpassword
, तो आप निम्न कार्य कर सकते हैं:
SELECT COUNT(1) Password_is_OK FROM mysql.user
WHERE user='myuser'
AND password=PASSWORD('whateverpassword');
आप कमांड लाइन से निम्नानुसार जांच कर सकते हैं:
PASSWORDISOK=`mysql -uroot -p... -ANe"SELECT COUNT(1) Password_is_OK FROM mysql.user WHERE user='myuser' AND password=PASSWORD('whateverpassword')"`
यदि आप नहीं हैं root
और केवल मायूसर का परीक्षण करना चाहते हैं, तो आप यह कर सकते हैं:
PASSWORDISOK=`mysqladmin -umyuser -pwhateverpassword ping | grep -c "mysqld is alive"`
यदि आपको 1 मिलता है, तो myuser के लिए पासवर्ड अच्छे के रूप में सत्यापित है।
mysql -h host -u user -p<whatever> -e"quit"
यह आपको उसी कनेक्शन स्ट्रिंग का उपयोग करने की अनुमति देता है जिसका उपयोग आप प्रोग्राम को सर्वर से क्वेरी भेजने के लिए करते हैं। आप || exit 1
अमान्य तर्कों पर ऑटो निकास के अंत में जोड़ सकते हैं । /dev/null
यदि आप स्वतः उत्पन्न MySQL त्रुटि संदेश पसंद नहीं करते हैं, तो आप stderr को पुनर्निर्देशित करना चाह सकते हैं ।
आप निम्न आदेश का उपयोग कर सकते हैं (यह मानते हुए कि आपके पास मेरे पेट में स्थापित है):
mysql -h host -u user -p
बस मेजबान और उपयोगकर्ता को सही मानों के साथ बदलें और फिर आपको अपने पासवर्ड के लिए संकेत दिया जाना चाहिए।