शेल कमांड के माध्यम से mysql डेटाबेस को कैसे हटाएं


80

मैं तोरण और sqlalchemy का उपयोग करता हूं। मैं लगातार स्कीमा फ़ाइलों को अपडेट करता हूं और डेटाबेस को हटाता हूं और फिर से बनाता हूं ताकि नई स्कीमा बनाई जा सके।

हर बार जब मैं MySql Query Browser को खोलकर लॉगिन करता हूं और डेटाबेस / स्कीमा को डिलीट करता हूं।

मैं उबंटू लिनक्स में MySQL db / स्कीमा पूरी तरह से लिनक्स शेल कमांड को कैसे हटाऊं?


यह किसी भी OS पर काम करता है न कि केवल linux
astroanu

जवाबों:


140

निम्नलिखित कमांड आज़माएं:

mysqladmin -h[hostname/localhost] -u[username] -p[password] drop [database]

7
सिस्टम पर आपका पासवर्ड किसी अन्य उपयोगकर्ता के लिए सुलभ होगा। ps aux.my.cnfइसके बजाय उपयोग करने पर विचार करें ।
गहोआ

मैं स्क्रिप्टिंग के लिए नौसिखिया हूं, लेकिन आप में से उन लोगों के लिए जिन्होंने अपनी स्क्रिप्ट के अंदर से डीबी को छोड़ने और बनाने के लिए एक विधि की तलाश में पाया, इस पद्धति ने मेरे लिए काम किया।
काइल

यदि आप लॉग इन किए बिना खुद के लिए देखना चाहते हैं यदि वास्तव में आपके डेटाबेस को उड़ा दिया गया है, तो मैं कल्पना करता हूं mysqlshow -u [username] -p[Password]। आप डेटाबेस के लिए भी grep कर सकते हैं mysqlshow -u [username] -p[password] | grep [database]
xpros

सुनिश्चित करने के लिए -u और उपयोगकर्ता नाम के बीच रिक्त स्थान के बिना?
अमेजन टर्टल

क्या प्रत्येक डीबी के लिए कमांड लिखने के बजाय एक ही कमांड के साथ सभी डेटाबेस को छोड़ने का कोई तरीका है?
ऐतज़ाज़ खान

37

सामान्य तौर पर, आप किसी भी क्वेरी को mysqlशेल विकल्प से पास कर सकते हैं ।

mysql -u username -p -D dbname -e "DROP DATABASE dbname"

5
सिस्टम पर आपका पासवर्ड किसी अन्य उपयोगकर्ता के लिए सुलभ होगा। ps aux.my.cnfइसके बजाय उपयोग करने पर विचार करें ।
गहोआ

3
या हो सकता है कि केवल यह नोट करें कि यह केवल आपके स्थानीय विकास परिवेश के लिए है जहाँ आप केवल उपयोगकर्ता हैं।
एलिजा लिन

4
डेटाबेस को DROP करने के लिए -D ध्वज की आवश्यकता नहीं होती है। इसके साथ पर्याप्त होना चाहिए:mysql -uuser -ppass -e "DROP DATABASE dbname"
dani24

26

यदि आप अपना पासवर्ड टाइप करके थक गए हैं, तो एक (chmod 600) फ़ाइल बनाएं ~/.my.cnf, और उसमें डालें:

[client]
user = "you"
password = "your-password"

बातचीत के लिए:

echo 'DROP DATABASE foo;' | mysql

2
हालांकि यह विकास का माहौल है, मैं वास्तव में दूसरों को दिखाई देने वाले पासवर्ड के बारे में ज्यादा चिंतित नहीं हूं। मुझे आपका .my.cnf विचार बहुत पसंद है। विचार पर +1

1
स्वचालित स्क्रिप्ट के लिए, उत्तर का दूसरा भाग सबसे अच्छा है। बहुत धन्यवाद।
दशम

13

एक और उपयुक्त तरीका:

$ mysql -u you -p
<enter password>

>>> DROP DATABASE foo;

वह मूल रूप से वही है जो वह कर रहा है।
स्कॉटी टी

4
कमांड लाइन पर भाईचारे का चित्रण एक डाउन वोट वारंट नहीं करता है। वह MySql Query Browser का उपयोग कर रहा था। समान नहीं है।
गहोआ

लेकिन समस्या कथन में स्पष्ट रूप से कहा गया है कि वह "शेल कमांड" चाहता है।
इयानकिट

10

Mysqladmin के लिए कोई ज़रूरत नहीं:

बस mysql कमांड लाइन का उपयोग करें

mysql -u [username] -p[password] -e 'drop database db-name;'

यह ड्रॉप कमांड भेजेगा, हालांकि मैं पासवर्ड इस तरह से पास नहीं करूंगा क्योंकि यह सिस्टम के अन्य यूजर्स के लिए ps aux के जरिए सामने आएगा


1

MySQL ने mysql क्लाइंट शेल से ड्रॉप डेटाबेस कमांड को बंद कर दिया है। डेटाबेस को छोड़ने के लिए mysqladmin का उपयोग करने की आवश्यकता है।


यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनकी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे ।
स्काईनेट

यह सीधे सवाल का जवाब नहीं देता क्योंकि सवाल बहुत अस्पष्ट है।
इलिजा

1

आप डेटाबेस को सीधे हटा सकते हैं:

$ mysqladmin -h [host] -u [उपयोगकर्ता] -p ड्रॉप [database_name]

[पास वर्ड दर्ज करें]

क्या आप वास्तव में 'हेयरफ्री' डेटाबेस को छोड़ना चाहते हैं [y / N]: y


0
[root@host]# mysqladmin -u root -p drop [DB]

Enter password:******

मुझे नहीं लगता कि यह सर्वर पर अन्य उपयोगकर्ताओं के लिए पासवर्ड को उजागर करता है, जैसे कई अन्य उत्तर करते हैं; बजाय उपयोगकर्ता हिट दर्ज करने के बाद उपयोगकर्ता के लिए कहा जाता है। संभवतः लोगों को इस बात का अहसास नहीं हुआ कि जब उन्होंने यह बताया कि संभवतः दो सर्वश्रेष्ठ उत्तर क्या हैं!
अत्यधिक अनियमित
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.