मेरे पास 5 डेटाबेस के साथ एक MySQL डंप है और यह जानना चाहेंगे कि उनमें से केवल एक आयात करने का कोई तरीका है (mysqldump या अन्य का उपयोग कर)।मैं एक डेटाबेस को एक डेटाबेस से पुनर्स्थापित कैसे करूं जिसमें एकाधिक डेटाबेस हैं?
सुझावों की सराहना की।
मेरे पास 5 डेटाबेस के साथ एक MySQL डंप है और यह जानना चाहेंगे कि उनमें से केवल एक आयात करने का कोई तरीका है (mysqldump या अन्य का उपयोग कर)।मैं एक डेटाबेस को एक डेटाबेस से पुनर्स्थापित कैसे करूं जिसमें एकाधिक डेटाबेस हैं?
सुझावों की सराहना की।
आप sed
के माध्यम से डंप किए गए एसक्यूएल को पाइप कर सकते हैं और इसे आपके लिए डेटाबेस निकाल सकते हैं। कुछ की तरह:
cat mysqldumped.sql | \
sed -n -e '/^CREATE DATABASE.*`the_database_you_want`/,/^CREATE DATABASE/ p' | \
sed -e '$d' | \
mysql
दो sed
कमांड:
CREATE DATABASE
लाइनों सहित) CREATE DATABASE
लाइनों के बीच मिलान लाइनों प्रिंट, औरCREATE DATABASE
लाइन हटाएं आउटपुट क्योंकि हम नहीं चाहते हैं कि mysqld दूसरा डेटाबेस बनाएं।अपने डंप CREATE DATABASE
लाइनों शामिल नहीं है, तो आप भी USE
लाइनों के खिलाफ मिलान कर सकते हैं।
एक पंक्ति में, और '-u' और '-p' विकल्पों के साथ देखें: 'बिल्ली सभी डेटाबेस dql | sed -n -e '/^डेटाबेस बनाएं। * \ 'the_database_you_want \' /,/^ डेटाबेस/पी बनाएँ। sed -e '$ d' | mysql -u my_username -p' –
आप mysql कमांड लाइन --one-डेटाबेस विकल्प का उपयोग कर सकते हैं।
निश्चित रूप से सावधान रहें जब आप ऐसा करते हैं।
आप mysql dumpsplitter का भी उपयोग कर सकते हैं।
के साथ आता है, मैंने कोशिश की, लेकिन हमेशा त्रुटि मिली "त्रुटि 1049 (42000): अज्ञात डेटाबेस 'redmine' "। दस्तावेज़ीकरण में कहा गया है: "बाइनरी लॉग में अन्य डेटाबेस के अपडेट को छोड़ने के लिए यह उपयोगी है।" यह एक बाइनरी लॉग नहीं है (मुझे लगता है) तो यह काम नहीं करेगा। –
मुझे इस सुविधा से संबंधित एक दिलचस्प बग रिपोर्ट मिली: http://bugs.mysql.com/bug.php?id=40477 –
@ThePixel डेवलपर: एक खाली डेटाबेस पहले मौजूद होना आवश्यक है, फिर यह काम करता है। –
मुझे नहीं लगता कि वहां है। सभी डेटाबेस आयात करना, और जिसे आप रखना चाहते हैं उसे छोड़कर हर किसी को छोड़ना, सबसे अच्छी चीज है जो आप सोच सकते हैं - लेकिन आप कभी नहीं जानते, शायद कोई –