mysqldump डेटा केवल


296

मैं अपने mysql डेटाबेस में सभी डेटा को डंप करने के लिए सिंटैक्स की तलाश कर रहा हूं। मुझे कोई तालिका जानकारी नहीं चाहिए।


जवाबों:


552
mysqldump --no-create-info ...

इसके अलावा आप उपयोग कर सकते हैं:

  • --skip-triggers: यदि आप ट्रिगर्स का उपयोग कर रहे हैं
  • --no-create-db: यदि आप --databases ...विकल्प का उपयोग कर रहे हैं
  • --compact: यदि आप अतिरिक्त टिप्पणियों से छुटकारा पाना चाहते हैं

47
यहाँ कॉपी पेस्टर्स के लिए पूर्ण cmd हैmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir Ramirez

2
यदि आपको मिलता है Access denied for user ... to database '...' when doing LOCK TABLES, तो उपयोग करें--single-transaction
रॉल्फ

@YzmirRamirez धन्यवाद, लेकिन खिड़कियों पर FYI करें मुझे इसके लिए दोहरे उद्धरण चिह्नों का उपयोग करना पड़ा --where। उदाहरण के लिए,--where="id=2"
किप

यह मेरे लिए एक शानदार बचतकर्ता था। धन्यवाद।
केन इंग्राम

149

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

# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql

# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql

# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql

नोट: के बीच कोई स्थान नहीं है -p&[pass]


12
--no-create-dbका उपयोग करते समय निरर्थक है--no-create-info
जेम्स मैकमोहन

4
-pठीक होने के बाद एक जगह
धन्यवाद

12
यह आमतौर पर पासवर्ड की आपूर्ति के बिना -p का उपयोग करने के लिए बेहतर है ताकि पासवर्ड आपके बैश इतिहास में संग्रहीत न हो (आपको कमांड चलाने के बाद पासवर्ड दर्ज करने के लिए प्रेरित किया जाएगा)।
डैन

2
@ दान की सलाह के अलावा, यह किसी भी उपयोगकर्ता को पासवर्ड दिखाता है जो वर्तमान प्रक्रियाओं को सूचीबद्ध कर सकता है ( ps -ef)
TMG

1
-pविकल्प के बाद पासवर्ड छोड़ना पासवर्ड के लिए mysqldumpसंकेत देता है ।
मेले

22
 >> man -k  mysqldump [enter in the terminal]

आपको नीचे दिया गया स्पष्टीकरण मिलेगा

-नहीं-बनाएँ-जानकारी, -t

प्रत्येक डंप की गई तालिका को फिर से बनाने वाले रचनात्मक विवरण न लिखें। नोट यह विकल्प mysqldump आउटपुट से लॉग फ़ाइल समूह या टेबलस्पेस बनाने वाले कथनों को बाहर नहीं करता है; हालाँकि, आप इस उद्देश्य के लिए -no-tablespaces विकल्प का उपयोग कर सकते हैं।

-कोई-डेटा, -d

कोई तालिका पंक्ति जानकारी नहीं लिखें (यानी, तालिका सामग्री डंप न करें)। यह उपयोगी है यदि आप तालिका के लिए केवल CREATE टेबल विवरण डंप करना चाहते हैं (उदाहरण के लिए, डंप फ़ाइल लोड करके तालिका की एक खाली प्रतिलिपि बनाने के लिए)।

# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql

# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql

3
क्या '-t' और '-d' विकल्प का दो बार उपयोग करने का कोई कारण है?
एर्वान

19

यदि आप केवल INSERT प्रश्न चाहते हैं, तो निम्नलिखित का उपयोग करें:

mysqldump --skip-triggers --compact --no-create-info


धन्यवाद --compactजिसके लिए अतिरिक्त टिप्पणी के बयानों से छुटकारा मिलता है
चिल्लीआउट

2

निम्नलिखित स्निपेट का उपयोग करने का सुझाव देगा। विशाल तालिकाओं के साथ भी ठीक काम करता है (अन्यथा आप संपादक में डंप खोलेंगे और अनावश्यक सामानों को सही करेंगे;)

mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql

कम से कम mysql 5.x की आवश्यकता है, लेकिन आजकल कौन पुराना सामान चलाता है .. :)


मैं हाल ही में एक स्थिति में भाग गया, जहां उत्पादन में 4.x का उपयोग करने वाली प्रणाली से जुड़ना था। उनके पास तालिका और स्तंभ नामों में स्थान थे, और मेरी राय में, वे मूल रूप से सब कुछ गलत कर रहे थे।
एल्कविस


0

एक सीमांकित फ़ाइल को डंप करने का प्रयास करें।

mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,

0

स्वीकार किए गए उत्तर का उपयोग करके डेटा निर्यात करने का प्रयास करते समय मुझे एक त्रुटि मिली:

ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

जैसा कि ऊपर उल्लेख किया गया है:

mysqldump --no-create-info

डेटा निर्यात करेगा, लेकिन यह बनाएँ ट्रिगर स्टेटमेंट को भी निर्यात करेगा। यदि मेरी तरह आपकी आउटपुट डेटाबेस संरचना (जिसमें ट्रिगर भी शामिल है) एक कमांड के साथ और फिर डेटा प्राप्त करने के लिए उपरोक्त कमांड का उपयोग करते हुए आपको '--स्काइप-ट्रिगर्स' का उपयोग करना चाहिए।

तो अगर आप डेटा चाहते हैं:

mysqldump --no-create-info --skip-triggers
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.