2011-10-12 7 views
8

मेरे पास एक बड़ा डंप (जीबी का दसवां) है और मैं इसे इंजन = INNODB पैरामीटर के सम्मान के बिना एक नई तालिका में आयात करना चाहता हूं।एक MySQL डंप फ़ाइल आयात करते समय मैं इंजन = INNODB पैरामीटर को ओवरराइड कैसे कर सकता हूं?

मैंने डंप को संपादित करने के लिए बड़ी फ़ाइलों के लिए समर्पित कई संपादकों की कोशिश की लेकिन संशोधनों को सहेजने में हमेशा बहुत समय लगता है, इसलिए यह केवल इंजन = INNODB पैरामीटर को अनदेखा करने और इसे ओवरराइड करने के लिए और अधिक समझदार होगा (उदाहरण के लिए डिफ़ॉल्ट इंजन के साथ)।

आयात करना और फिर इंजन को बदलना एक विकल्प नहीं होगा क्योंकि इनो डीबी डंप आयात करने में बेहद धीमी है, इसलिए इसमें दिन लगेंगे।

उत्तर

5

आप एक लिनक्स पर कर रहे हैं/यूनिक्स प्रणाली कैसे sed

sed -i 's/ENGINE=INNODB/ENGINE=MYISAM/g' filename 
के साथ जगह संपादन में एक के बारे में
+3

यह उल्लेख के लायक है कि, अप्रत्याशित घटना कुछ है कि में डेटाबेस में डेटा में वास्तव में 'ENGINE = INNODB' टेक्स्ट होता है, यह आदेश डेटा को दूषित कर देगा। – Asaph

+1

@ एसाफ - अच्छा बिंदु। –

+3

'sed -i -re' s/^ (\) इंजन =) INNODB/\ 1MISISAM/gi'' का उपयोग करें, यह सुरक्षित होना चाहिए क्योंकि वास्तविक डेटा में कोई अनन्य नईलाइन नहीं होनी चाहिए। –

7

mysqldump --compatible=no_table_options

मेरे लिए काम किया

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