2009-06-01 21 views

उत्तर

211

को निर्यात करते mysqldump नहीं मतलब है, लेकिन mysql CLI ...

mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase 

आप इसे एक के लिए बाहर अनुप्रेषित कर सकते हैं फाइल अगर आप चाहते हैं:

mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt 

अद्यतन: मूल पोस्ट पूछा कि क्या वह कर सकता है क्वेरी द्वारा डेटाबेस से डंप करें। उसने क्या पूछा और उसका क्या मतलब अलग था। वह वास्तव में सिर्फ सभी टेबलों को mysqldump करना चाहता था।

mysqldump --tables myTable --where="id < 1000" 
+0

आप आउटपुट में -बी (- बैच) स्विच का उपयोग टैब को सीमित के रूप में भी कर सकते हैं। – jonstjohn

+39

क्या होगा अगर मैं इसे एक प्रारूप में चाहता हूं जो पुन: सम्मिलन की अनुमति देता है? –

+18

इस डंपेड txt फ़ाइल को पुनर्स्थापित कैसे करें? Mysql -e दृष्टिकोण की कोशिश करने वालों के लिए –

217

यह काम करना चाहिए

mysqldump --databases X --tables Y --where="1 limit 1000000" 
+3

एक बेहतर उदाहरण कुछ ऐसा हो सकता है वास्तव में एक खंड की तरह दिखता है, जैसे --where = "myColumn <1000" - प्रत्येक तालिका की पहली मिलियन पंक्तियां अनुरोध करने के लिए एक अजीब बात की तरह लगती हैं;) – ijw

+0

@ijw यदि आप आसानी से पुन: सम्मिलित करना चाहते हैं आपकी मेज का बैकअप योग्य बैकअप, आपको शायद सीमा से अधिक किसी अन्य चीज़ के लिए एक खंड की आवश्यकता नहीं है। –

+3

@Sagotharan: ठीक है, यह एक प्रश्न नहीं है। शायद यही कारण है। –

58

आप इस तरह csv के रूप में एक प्रश्न डंप कर सकते हैं:

SELECT * from myTable 
INTO OUTFILE '/tmp/querydump.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
+4

यदि मैं एकाधिक तालिकाओं को डंप करना चाहता हूं तो क्या होगा। – SIFE

+7

यह मशीन पर एक फ़ाइल बनाता है जिस पर MySQL डेटाबेस चल रहा है। इसलिए, यदि आप रिमोट कंसोल से पूछताछ कर रहे हैं तो यह विधि विफल हो जाती है। यदि रिमोट कंसोल से इसे करने का कोई तरीका है, तो कृपया मुझे इसके बारे में बताएं। – dknight

+0

यह फ़ाइल को कहां सहेजता है? – Techlord

32

आप mysqldump पर --where विकल्प इस्तेमाल कर सकते हैं एक आउटपुट है कि आप कर रहे हैं का निर्माण करने के के लिए प्रतीक्षा:

mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql 

test.t1 से अधिकांश 100 पंक्तियों को डेटाबेस तालिका से हटा दिया जाएगा।

mysqldump mydatabase mytable > data.sql 

नोट्स::

mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql 

एक पूरी तालिका डंप:

चीयर्स, पश्चिम बंगाल

+0

मैं वास्तव में क्या देख रहा था, धन्यवाद –

43

एक जहां क्वेरी का उपयोग कर एक मेज डंप

  • mydatabase बदलें, mytable, और वांछित मूल्यों के साथ कहां बयान।
  • डिफ़ॉल्ट रूप से, mysqldump में इसके आउटपुट में DROP TABLE और CREATE TABLE कथन शामिल होंगे। इसलिए, यदि आप सहेजे गए डेटा फ़ाइल से पुनर्स्थापित करते समय अपनी तालिका में सभी डेटा को मिटाना नहीं चाहते हैं, तो सुनिश्चित करें कि आप --no-create-info विकल्प का उपयोग करें।
  • आपको क्रमशः अपने इच्छित डेटाबेस होस्ट, उपयोगकर्ता और पासवर्ड को निर्दिष्ट करने के लिए ऊपर दिए गए उदाहरण आदेशों के लिए उचित -h, -u, और -p विकल्प जोड़ने की आवश्यकता हो सकती है।
2

ऊपर से अधिक का संयोजन मेरा असली व्यावहारिक उदाहरण है, दोनों मीटर & टाइमस्टैम्प के आधार पर रिकॉर्ड का चयन करना। मुझे इस आदेश की सालों से जरूरत है। वास्तव में जल्दी निष्पादित करता है।

mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep '^INSERT' > 5406.sql 
-2

mysql निर्यात क्वेरी परिणाम कमांड लाइन:

mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt 
1

MySQL Workbench भी जीयूआई में बड़े करीने से इस सुविधा है। बस एक क्वेरी चलाने, निर्यात/आयात के बगल में बचाने के आइकन पर क्लिक करें:

enter image description here

फिर चुनें "एसक्यूएल सम्मिलित बयान (* .sql)" सूची में।

enter image description here

एक नाम दर्ज करें, बचाने तालिका नाम की पुष्टि पर क्लिक करें और आप अपने डंप फ़ाइल होगा।

+0

बड़े प्रश्नों के लिए काम नहीं करता है .. – caras

0

आप एक फ़ाइल में अभिलेखों का अपने पिछले n राशि निर्यात करना चाहते हैं, तो आपको निम्न चला सकते हैं:

mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql 

ऊपर export_file.sql में पिछले 100 रिकॉर्ड की बचत होगी, टेबल आप 'यह सोचते हैं फिर से निर्यात एक ऑटो-वृद्धि आईडी आईडी है।

आपको उपयोगकर्ता, लोकलहोस्ट, डेटाबेस और तालिका मानों को बदलने की आवश्यकता होगी। आप वैकल्पिक रूप से आईडी कॉलम और निर्यात फ़ाइल नाम बदल सकते हैं।

संबंधित मुद्दे