mysqladmin -uroot create foo
यदि foo
मौजूद है, तो 1 का निकास स्थिति देता है, और अन्यथा, लेकिन निश्चित रूप से यह डेटाबेस भी बनाएगा यदि यह पहले से मौजूद नहीं है। क्या किसी डेटाबेस में मौजूद है या नहीं, इसकी जांच करने का कोई आसान तरीका है?
mysqladmin -uroot create foo
यदि foo
मौजूद है, तो 1 का निकास स्थिति देता है, और अन्यथा, लेकिन निश्चित रूप से यह डेटाबेस भी बनाएगा यदि यह पहले से मौजूद नहीं है। क्या किसी डेटाबेस में मौजूद है या नहीं, इसकी जांच करने का कोई आसान तरीका है?
जवाबों:
मुझे लगता है कि यह एक लंबे समय से पहले उत्तर दिया गया था, लेकिन ऐसा करने के लिए यह मुझे बहुत साफ लगता है:
mysql -u root -e 'use mydbname'
यदि डेटाबेस मौजूद है, तो यह कोई आउटपुट नहीं देगा और रिटर्नकोड == 0 के साथ बाहर निकल जाएगा।
यदि डेटाबेस मौजूद नहीं है, तो यह stderr पर एक त्रुटि संदेश देगा और रिटर्नकोड के साथ बाहर निकल जाएगा == 1. तो आप कुछ इस तरह से करेंगे:
if ! mysql -u root -e 'use mydbname'; then
...do stuff to create database...
fi
यह शेल स्क्रिप्ट के साथ अच्छी तरह से काम करता है, आउटपुट के किसी भी प्रसंस्करण की आवश्यकता नहीं होती है, और स्थानीय फाइल सिस्टम एक्सेस पर निर्भर नहीं करता है।
mysql -e "SHOW DATABASES LIKE 'foo'"
आपकी मदद करनी चाहिए।
mysql --batch --skip-column-names -e "SHOW DATABASES LIKE 'foo'" | grep foo
:।
MySQL में डेटाबेस फाइलसिस्टम में फोल्डर हैं। इससे यह पता लगाना आसान है कि क्या डेटाबेस मौजूद है:
test -d "/var/lib/mysql/databasename"
इस मामले में, /var/lib
MySQL का डेटाडेट है। इस स्निपेट के बारे में अच्छी बात यह है कि इसे चलने के लिए MySQL डेमॉन की आवश्यकता नहीं होगी, न ही इसे क्रेडेंशियल की आवश्यकता है। बेशक कमांड चलाने वाले उपयोगकर्ता को उस निर्देशिका में नीचे उतरने की अनुमति दी जानी चाहिए।
से http://www.jbmurphy.com/2011/02/08/quick-check-if-a-mysql-database-exists/ इस मैं चाहता था के अधिक समान है:
DBNAME="dblookingfor"
DBEXISTS=$(mysql --batch --skip-column-names -e "SHOW DATABASES LIKE '"$DBNAME"';" | grep "$DBNAME" > /dev/null; echo "$?")
if [ $DBEXISTS -eq 0 ];then
echo "A database with the name $DBNAME already exists."
else
echo " database $DBNAME does not exist."
fi
मुझे लगता है कि आप जांच कर सकते हैं कि आपका आवश्यक डेटाबेस किसी भी शेल में सरल तरीके से काम कर रहा है या नहीं
mysql -uUSERNAME -pPASSWORD DATABASE -e exit
और फिर $?
बाहर निकलने के कोड के लिए जाँच करें
यह आदेश आपके विशिष्ट क्रेडेंशियल्स (USERNAME और PASSWORD) को चयनित DATABASE और exit
तुरंत कनेक्ट करने का प्रयास करता है । इसलिए, यदि कनेक्शन ठीक है तो एग्जिटकोड 0 होगा, और गैर-शून्य अन्यथा।
बेशक, /dev/null
अगर जरूरत हो तो आप किसी भी आउटपुट को रीडायरेक्ट कर सकते हैं
पुनश्च। यह विधि अल्पकालिक भंडारण के स्वास्थ्य की जांच करने के लिए बहुत उपयोगी है जो हमारे दिनों में बहुत तेज़ और लोकप्रिय हैं। यदि डेटाबेस कनेक्ट नहीं किया जा सकता है, तो आपको asap को पुनर्स्थापित करना शुरू करना चाहिए।