क्या mysqldumpएकल द्वारा करना संभव है SQL query?
मेरा मतलब पूरे डेटाबेस को डंप करना है, जैसे phpmyadminआप निर्यात करते हैंSQL
क्या mysqldumpएकल द्वारा करना संभव है SQL query?
मेरा मतलब पूरे डेटाबेस को डंप करना है, जैसे phpmyadminआप निर्यात करते हैंSQL
जवाबों:
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"
यह काम करना चाहिए
mysqldump --databases X --tables Y --where="1 limit 1000000"
आप इस तरह csv के रूप में एक क्वेरी डंप कर सकते हैं:
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scpकनेक्शन समाप्त होने के बाद डंप की गई फ़ाइल को पुनः प्राप्त कर सकते हैं । यहाँ एक उदाहरण है। scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
एक क्वेरी का उपयोग करके एक तालिका को डंप करें:
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
एक पूरी तालिका डंप करें:
mysqldump mydatabase mytable > data.sql
टिप्पणियाँ:
mydatabase, mytableऔर जहां अपने वांछित मूल्यों के साथ बयान।mysqldumpशामिल होंगे DROP TABLEऔर CREATE TABLEबयान करेंगे । इसलिए, यदि आप सहेजी गई डेटा फ़ाइल से पुनर्स्थापित करते समय अपनी तालिका के सभी डेटा को नहीं हटाना चाहते हैं , तो सुनिश्चित करें कि आप --no-create-infoविकल्प का उपयोग करते हैं ।-h, -uऔर -pविकल्पों को जोड़ने की आवश्यकता हो सकती है।आप mysqldump पर उस जगह का उपयोग कर सकते हैं, जिसके लिए आप एक आउटपुट तैयार कर रहे हैं:
mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql
Test.t1 से अधिकांश 100 पंक्तियों को डेटाबेस टेबल से डंप किया जाएगा।
चीयर्स, डब्ल्यूबी
यदि आप किसी फ़ाइल में अपने अंतिम एन रिकॉर्ड की मात्रा को निर्यात करना चाहते हैं, तो आप निम्नलिखित चला सकते हैं:
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
उपरोक्त पिछले 100 रिकॉर्ड को export_file.sql में सहेज देगा, यह मानकर कि आप जिस तालिका से निर्यात कर रहे हैं, उसमें एक ऑटो-इंक्रेस्ड आईडी कॉलम है।
आपको उपयोगकर्ता, लोकलहोस्ट, डेटाबेस और टेबल वैल्यू को बदलना होगा। आप वैकल्पिक रूप से आईडी कॉलम और निर्यात फ़ाइल नाम बदल सकते हैं।
MySQL Workbench में GUI में भी यह सुविधा है। बस एक क्वेरी चलाएँ, निर्यात / आयात के बगल में स्थित सहेजें आइकन पर क्लिक करें:
फिर सूची में "SQL INSERT स्टेटमेंट (* .sql)" चुनें।
एक नाम दर्ज करें, सहेजें पर क्लिक करें, तालिका नाम की पुष्टि करें और आपके पास आपकी डंप फ़ाइल होगी।
यहाँ ऊपर से बहुत संयोजन मेरा वास्तविक व्यावहारिक उदाहरण है, दोनों मीटर और टाइमस्टैम्प के आधार पर रिकॉर्ड का चयन करना। मुझे सालों से इस कमांड की जरूरत है। वास्तव में जल्दी से निष्पादित।
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
mysql क्वेरी परिणाम कमांड लाइन का निर्यात करें the
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt