मेरे पास दो डेटाबेस हैं। मैं पहले डेटाबेस में एक तालिका से डेटा डंप करना चाहता हूं और दूसरे डेटाबेस में किसी अन्य नाम के साथ दूसरी तालिका में सम्मिलित करना चाहता हूं।
तो मेरे पास DB1 है जिसमें टेबल tbl1 और tabl2 हैं, और DB2 जिसमें टेबल tbl3 और tbl4 हैं। मुझे पता है कि tabl1 और tabl3 की संरचना समान है। Mysqldump कमांड का उपयोग करके डेटा को एक से दूसरे में कैसे कॉपी करें?
मैंने ऐसा करने की कोशिश की है, लेकिन यह काम नहीं कर रहा है।

mysqldump --user root --password=password --no-create-info DB1 tbl1 > c:/dump.sql
mysql --user root --password=password DB2 tbl3 < c:/dump.sql
3
Alexander 16 अगस्त 2011, 14:12

3 जवाब

सबसे बढ़िया उत्तर

यह अलग टेबल नाम के कारण काम नहीं करेगा

यदि दोनों डेटाबेस एक ही सर्वर में एक ही डेमॉन का उपयोग कर बैठे हैं, तो आप सीधे कर सकते हैं

insert into DB2.tbl3 select * from DB1.tbl1;

अगर tbl1 DB2 में मौजूद नहीं है,
इसके लिए छद्म कोड:

# import as tbl1 from DB1 into tbl1 in DB2
mysqldump DB1 tbl1 | mysql DB2

# then rename tbl1 in DB2 to tbl3
mysql DB2 -N <<< "rename table tbl1 to tbl3"
6
ajreal 9 अक्टूबर 2012, 09:24
इस पुरानी पोस्ट को पुनर्जीवित करने के लिए क्षमा करें, क्या आप कृपया मुझे बता सकते हैं कि कौन सा दृष्टिकोण बेहतर है- प्रदर्शन के अनुसार, insert into tbl3 या डंप लेना और नई तालिका में इसे पुनर्स्थापित करना, मेरी तालिका में 10 crore(100 million) प्रविष्टियां हैं।
 – 
Saurabh
2 मई 2014, 14:48
एक डंप करो, और पुन: सम्मिलित करना बेहतर होगा। या एक प्रतिकृति स्थापित करें।
 – 
ajreal
2 मई 2014, 15:45

मैं एक लिनक्स खोल कमांड लाइन में उपयोग कर रहा हूँ

mysqldump --user=username --password=xxxx dbname | mysql --host=remotehost.com --user=username --password=xxxx -C dname 

यह इसे स्थानीय होस्ट से दूरस्थ होस्ट, संपूर्ण डेटाबेस में स्थानांतरित करता है।

3
uncovery 16 अगस्त 2011, 14:17
जब मैं इस कमांड को चलाता हूं (mysqldump --user=root --password=password DB1 tbl1 | mysql --user=root --password=password -C DB2 tbl3) कहता है: "लिखने में कोई 22 गलती नहीं हुई"।
 – 
Alexander
16 अगस्त 2011, 14:20
क्या आप सुनिश्चित हैं कि उपयोगकर्ता नाम/पासवर्ड संयोजन के पास दोनों तरफ ऐसा करने के लिए पर्याप्त अधिकार हैं?
 – 
uncovery
16 अगस्त 2011, 14:26
मेरे लिए काम किया। @Alexandor ने mysql के लिए दूरस्थ होस्टनाम को परिभाषित नहीं किया
 – 
Māris Kiseļovs
13 मार्च 2013, 18:28

यदि आप तालिका की सामग्री की प्रतिलिपि बनाना चाहते हैं तो आप यह कर सकते हैं:

CREATE TABLE `new_table_name` LIKE `old_table_name`;
INSERT INTO `new_table_name` SELECT * FROM `old_table_name`;

यदि आपको तालिका को एक डेटाबेस से दूसरे डेटाबेस में कॉपी करना है तो निम्न का उपयोग करें

 CREATE TABLE `db1.new_table_name` LIKE `db2.old_table_name`;
 INSERT INTO `db1.new_table_name` SELECT * FROM `db2.old_table_name`;

यह मेरे लिए सिंगल टेबल डंपिंग के रूप में काम करता है और मारियाडीबी के साथ सिंटैक्स त्रुटि आयात कर रहा था

1
Amitesh Bharti 17 सितंबर 2018, 16:56