मैं एक डेटाबेस से निहित तालिका की प्रतिलिपि बनाना चाहता हूं और दूसरे डेटाबेस तालिका में सम्मिलित करना चाहता हूं


96

मैं एक तालिका के स्कीमा के साथ-साथ उस तालिका के डेटा को किसी अन्य डेटाबेस में किसी अन्य डेटाबेस में एक लाइव सर्वर पर कॉपी करना चाहता हूं। मैं ये कैसे करूं?


दो डेटाबेस कनेक्शन का उपयोग करें और तालिका संरचना को एक से पढ़ें और उस क्वेरी को अन्य तक चलाएं
Dau

क्या ये डेटाबेस अलग-अलग mysql इंस्टेंस या एक ही हैं? यदि यह एक सतत प्रक्रिया है तो विभिन्न उदाहरण प्रतिकृति के साथ सेटअप किए जा सकते हैं।
निक

@ मेरे डेटाबेस विभिन्न mysql उदाहरणों पर हैं। क्या आप बता सकते हैं कि इसे कैसे कॉपी किया जाए?
johk95

जवाबों:


218

यदि आप किसी तालिका को एक डेटाबेस से दूसरे डेटाबेस में कॉपी करना चाहते हैं, तो आप बस नीचे दिए अनुसार कर सकते हैं।

CREATE TABLE db2.table LIKE db1.table;
INSERT INTO db2.table SELECT * FROM db1.table;

2
महान समाधान अगर तालिका में कोई विदेशी कुंजी बाधा नहीं है। मैंने इसका इस्तेमाल सिर्फ एक टेबल के बजाय एक पूरे डेटाबेस की कॉपी बनाने के लिए किया। इसके लिए मैं mysqldump कमांड का उपयोग करने की सलाह दूंगा।
कांटे ५१

MySQL अब टेबल डेटा को अलग-अलग फाइलों में स्टोर कर सकती है (और frm फाइलें बहुत ज्यादा प्रति टेबल हैं)। इस दृष्टिकोण से कोई संदेह नहीं होगा, लेकिन विशाल डेटाबेस के साथ यह धीमा है। क्या कोई और तरीका हो सकता है?
एलेक्स कोवशोविक

1
यह केवल तभी काम करता है जब डेटाबेस एक ही सर्वर पर हो।
zgr024

10

या MySQL 5 में db1.table से केवल TABLE db2.table का चयन करें


4
यह इंडेक्स जैसी चीजों की नकल नहीं करता है। यह केवल टुपल्स के सेट के आधार पर एक तालिका बनाता है। आप शायद ऐसा नहीं करना चाहते हैं।
BenMQ

हाँ, यह क्वेरी
अनुक्रमणिका

4

BASH में आप कर सकते हैं:

mysqldump database_1 table | mysql database_2


2

यदि आप चाहते हैं कि संरचना केवल कॉपी की जाए तो उपयोग करें

CREATE TABLE Db_Name.table1 LIKE DbName.table2;

Ps> जो स्कीमा और डेटा की प्रतिलिपि नहीं बनाएगा



0

कमांडलाइन में:

mysqldump -h localhost -u username -ppassword [SCHEMA] --tables [TABLE] | mysql -h otherhost -u username -ppassword [SCHEMA2]

यह अन्य होस्ट पर SCHEMA के लिए SCHEMA के अंदर SCHEMA2 पर कॉपी करेगा।

लोकलहोस्ट और अन्यहोस्ट बस होस्टनाम हैं और समान या अलग हो सकते हैं।

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