2012-02-20 13 views
8

मैं प्रत्येक mysql तालिका को mysqldump से अलग कैसे डंप कर सकता हूं?माईस्कल्डम्पर: प्रत्येक तालिका को अलग-अलग डंपिंग

पृष्ठभूमि: मैं Git के साथ उन लोगों डंप ट्रैक करना चाहते हैं और पूर्व प्रतिबद्ध हुक

उदाहरण का उपयोग करते हुए: मैं 10 टेबल के साथ एक स्कीमा है (table1 - table10)। अब मैं तालिका के अनुसार एक फ़ाइल हैं: table1.sql table2.sql ...

तो कैसे वाला यह काम करता है?

एसएनडी क्यों stackoverflow मेरे सवाल पसंद नहीं है?

+0

आप 'Snd साथ क्या मतलब है क्यों मेरे सवाल पसंद नहीं है Stackoverflow' –

+3

http: // stackoverflow.com/questions/3669121/dump-all-mysql-tables-into-separate-files-automagically/6300583 – kenorb

उत्तर

1
mysqldump -t -u [username] -p test mytable 

डेटाबेस 'परीक्षण' से तालिका 'mytable' को डंप करेगा।

यदि आप प्रक्रिया को स्वचालित करना चाहते हैं, तो आपको एक स्क्रिप्ट लिखनी होगी, आपके लिए स्कीमा से table_names का चयन करता है और प्रत्येक तालिका के लिए से ऊपर ऑपरेशन लागू करता है। आप गिट ऑपरेशंस को भी स्वचालित कर सकते हैं।

+0

और मैं प्रक्रिया को स्वचालित कैसे कर सकता हूं? श्रीमान, मैं नया हूं ... –

+1

आपके ऑपरेशन सिस्टम पर निर्भर करता है। यदि आप शायद लिनक्स - बैश स्क्रिप्टिंग का उपयोग कर रहे हैं। – hovanessyan

30

यह एक खोल में काम करना चाहिए:

for x in `mysql --skip-column-names -u [username] -p[password] [dbname] -e 'show tables;'`; do 
    mysqldump -u [username] -p[password] [db name] $x > "$x.sql" 
done 
+1

असल में नवीन कुमार का जवाब मेरा से बेहतर है। –

+5

नहीं, आपका उत्तर बेहतर है :) thanx – tasmaniski

5

आशा है कि यह मदद करता है

mysqldump --user=dbuser --password --tab=~/output/dir dbname 

आप एक tablename.sql फ़ाइल प्रत्येक तालिका स्कीमा (टेबल बयान बनाने) और tablename.txt फ़ाइल युक्त होगा डेटा युक्त

mysqldump --user=dbuser --password --no-data --tab=~/output/dir dbname 

अगर आप स्कीमा के साथ एक डंप चाहते केवल, --no-डेटा झंडा जोड़ें:

+5

मुझे लगता है कि आपने http://stackoverflow.com/a/6300583/616443 – j08691

+0

से अपना उत्तर 100% कॉपी किया है, यह मेरे लिए ओएसएक्स में काम करता है, क्या आयात करने का कोई तरीका है डंप? –

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