SQL सर्वर 2005 से डेटा को MySQL में कैसे निर्यात करें [बंद]


86

मैं SQL Server 2005बहुत से डेटा बाहर निकालने की कोशिश के खिलाफ अपना सिर पीट रहा हूं । मुझे इसमें लगभग 300 टेबल के साथ एक डेटाबेस दिया गया है और मुझे इसे MySQL डेटाबेस में बदलने की आवश्यकता है। मेरी पहली कॉल बीसीपी का उपयोग करने के लिए थी, लेकिन दुर्भाग्य से यह वैध सीएसवी का उत्पादन नहीं करता है - स्ट्रिंग्स को एन्कैप्सुलेट नहीं किया जाता है, इसलिए आप किसी भी पंक्ति के साथ सौदा नहीं कर सकते हैं जिसमें एक कॉमा के साथ एक स्ट्रिंग है (या जो आप एक सीमांकक के रूप में उपयोग करते हैं) और मुझे अभी भी सभी को सारणी बनाने के लिए लिखना होगा, क्योंकि जाहिर तौर पर CSV आपको डेटा प्रकारों के बारे में कुछ नहीं बताता है।

क्या बेहतर होगा यदि कोई उपकरण था जो SQL सर्वर और MySQL दोनों से जुड़ सकता है, तो एक प्रतिलिपि बनाएँ। आप दृश्य, संग्रहीत कार्यविधियाँ, ट्रिगर आदि खो देते हैं, लेकिन एक तालिका की प्रतिलिपि बनाना कठिन नहीं है जो केवल आधार प्रकार को एक DB से दूसरे में उपयोग करती है ... है?

क्या कोई ऐसे उपकरण के बारे में जानता है? मुझे कोई आपत्ति नहीं है कि यह कितनी धारणाएं बनाता है या क्या सरलीकरण होता है, जब तक कि यह पूर्णांक, फ्लोट, डेटाइम और स्ट्रिंग का समर्थन करता है। मुझे बहुत अधिक प्रूनिंग, सामान्यीकरण आदि करना है, वैसे भी मुझे चाबी, रिश्ते या कुछ भी रखने की परवाह नहीं है, लेकिन मुझे डेटा के शुरुआती सेट की आवश्यकता है!


1
मैंने सफलता के साथ MSSQL2MySQL का उपयोग करते हुए कुछ लोगों को सुना है , लेकिन मैं खुद इसके लिए वाउच नहीं कर सकता।
ग्रेग हर्लमैन

1
मैंने सुना है कि SQLYob यह कर सकता है। < webyog.com/en > यहाँ: < searchsqlserver.techtarget.com/tip/… >
बोरबज़

यह उपकरण वही है जो आपने मांगा था: पूर्ण रूपांतरित उद्यम । सच है, आप दृश्य, प्रक्रिया और ट्रिगर खो देते हैं, लेकिन यह बहुत बड़ी तालिकाओं के लिए अनुकूलित है। एक अन्य समाधान (अधिक महंगा) जो सभी वस्तुओं (प्रक्रियाओं आदि) का अनुवाद करता है, SqlTran SQL Server से MySQL
Damir Bulic

1
इसी तरह के उत्तर यहां: stackoverflow.com/questions/11619177/…
याकूब

1
@borjab: SQLyog पुराने संस्करणों में ODBC के साथ काम करता था, लेकिन अब ऐसा नहीं है, इसलिए यह इस काम के लिए एक विकल्प नहीं है।
BlaM

जवाबों:


59

सबसे अच्छा तरीका जो मैंने पाया है वह MySQL द्वारा प्रदान किया गया MySQL माइग्रेशन टूलकिट है । मैंने कुछ बड़ी माइग्रेशन परियोजनाओं के लिए इसका सफलतापूर्वक उपयोग किया है।


2
+1 - यह अब ईओएल है, और MySQL वर्कबेंच
मार्क

DATE या DATETIME कॉलम को परिवर्तित नहीं करना चाहता :(
रॉबर्ट इवानक

1
नोट: वर्तमान में, MySQL माइग्रेशन टूलकिट लिनक्स के लिए उपलब्ध नहीं है ( dev.mysql.com/doc/migration-toolkit/en/… से )
mkirk

1
ध्यान दें कि मेरे एसक्यूएल प्रवासन टूलकिट JDK 5 अद्यतन के 32-बिट संस्करण की आवश्यकता है 8 या बाद में, जिसे आप यहां डाउनलोड कर सकते हैं (ver 6 होगा काम नहीं, ver 5) होना चाहिए: tinyurl.com/5snd6y3
casterle

9

MSSQL प्रबंधन स्टूडियो का उपयोग करके मैंने MySQL OLE DB के साथ तालिकाओं को संक्रमित कर दिया है। अपने डेटाबेस पर राइट क्लिक करें और "टास्क-> एक्सपोर्ट डेटा" पर जाएं वहां से आप एक MsSQL OLE DB स्रोत, MySQL OLE DB स्रोत को निर्दिष्ट कर सकते हैं और दो डेटा स्रोतों के बीच कॉलम मैपिंग बना सकते हैं।

आप संभवतः MySQL गंतव्य पर डेटाबेस और तालिकाओं को अग्रिम रूप से सेटअप करना चाहते हैं (निर्यात स्वचालित रूप से तालिकाओं को बनाना चाहेगा, लेकिन इससे अक्सर विफलता होती है)। आप डेटाबेस पर राइट क्लिक करके "टास्क-> जनरेट स्क्रिप्ट्स" का उपयोग करके MySQL में टेबल जल्दी से बना सकते हैं। एक बार जब आपकी निर्माण स्क्रिप्ट उत्पन्न हो जाती है तो आपको MSSQL और MYSQL में मौजूद कीवर्ड और प्रकारों के लिए खोज करना / बदलना होगा।

बेशक आप भी डेटाबेस को सामान्य की तरह बैकअप कर सकते हैं और एक उपयोगिता पा सकते हैं जो एमएसक्यूएल बैकअप को एमएसक्यूएल पर पुनर्स्थापित करेगा। मुझे यकीन नहीं है कि अगर कोई मौजूद है।


9

SQL सर्वर 2005 "मानक", "डेवलपर" और "एंटरप्राइज़" संस्करणों में SSIS होता है , जिसने DTS को SQL सर्वर 2000 से बदल दिया है। SSIS के पास स्वयं के DB से एक अंतर्निहित कनेक्शन है, और आप एक कनेक्शन पा सकते हैं जो किसी और के लिए लिखा है। माई एसक्यूएल। यहाँ एक उदाहरण है। एक बार आपके कनेक्शन होने के बाद, आपको एक SSIS पैकेज बनाने में सक्षम होना चाहिए जो दोनों के बीच डेटा को स्थानांतरित करता है।

मुझे SQLServer से MySQL में डेटा स्थानांतरित करने की आवश्यकता नहीं है, लेकिन मुझे लगता है कि एक बार MySQL कनेक्शन स्थापित होने के बाद, यह दो SQLServer DBs के बीच बढ़ते डेटा के रूप में ही काम करता है, जो बहुत सीधे आगे है।


8

अपने स्वयं के PHP समाधान को रोल करना निश्चित रूप से काम करेगा हालांकि मुझे यकीन नहीं है कि स्कीमा को एक DB से दूसरे में स्वचालित रूप से डुप्लिकेट करने का एक अच्छा तरीका है (शायद यह आपका प्रश्न था)।

यदि आप केवल डेटा कॉपी कर रहे हैं, और / या आपको दो DB के बीच संशोधित स्कीमा के बीच कनवर्ट करने के लिए वैसे भी कस्टम कोड की आवश्यकता है, तो मैं PHP 5.2+ और PDO लाइब्रेरीज़ का उपयोग करने की सलाह दूंगा। आप PDO ODBC (और MSSQL ड्राइवरों का उपयोग करके) कनेक्ट कर पाएंगे। मुझे MSSQL से अन्य पुस्तकालयों का उपयोग करते हुए MSSQL से बड़े पाठ फ़ील्ड और मल्टी-बाइट वर्ण प्राप्त करने में बहुत समस्याएँ थीं।


6

प्रयास करने के लिए एक और उपकरण SQLMaestro सुइट होगा । यह सटीक उपकरण के नीचे थोड़ा मुश्किल है, लेकिन उनके पास विभिन्न प्रकार के उपकरण हैं, दोनों मुफ्त और खरीद के लिए जो कई डेटाबेस प्लेटफार्मों के लिए विभिन्न प्रकार के कार्यों को संभालते हैं। मेरा सुझाव है कि मैं MySQL के लिए सबसे पहले डेटा विजार्ड टूल को आज़माऊंगा, क्योंकि मेरा मानना ​​है कि आपके लिए उचित "आयात" टूल होगा।

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