So exportieren Sie Daten von SQL Server 2005 nach MySQL

Translate

Ich habe meinen Kopf dagegen geschlagenSQL Server 2005versuchen, viele Daten herauszuholen. Ich habe eine Datenbank mit fast 300 Tabellen erhalten und muss diese in eine MySQL-Datenbank umwandeln. Mein erster Aufruf war die Verwendung von bcp, aber leider erzeugt es keine gültige CSV - Zeichenfolgen sind nicht gekapselt, sodass Sie keine Zeile bearbeiten können, die eine Zeichenfolge mit einem Komma enthält (oder was auch immer Sie als Trennzeichen verwenden). und ich müsste immer noch alle Anweisungen zum Erstellen von Tabellen von Hand schreiben, da CSV Ihnen offensichtlich nichts über die Datentypen sagt.

Was besser wäre, wäre, wenn es ein Tool gäbe, das sowohl eine Verbindung zu SQL Server als auch zu MySQL herstellen könnte, und dann eine Kopie zu erstellen. Sie verlieren Ansichten, gespeicherte Prozeduren, Trigger usw., aber es ist nicht schwer, eine Tabelle zu kopieren, die nur Basistypen von einer Datenbank in eine andere verwendet ... oder?

Kennt jemand ein solches Werkzeug? Es macht mir nichts aus, wie viele Annahmen es macht oder welche Vereinfachungen auftreten, solange es Integer, Float, Datetime und String unterstützt. Ich muss sowieso viel beschneiden, normalisieren usw., damit es mir egal ist, Schlüssel, Beziehungen oder ähnliches zu behalten, aber ich brauche den ersten Datensatz schnell!

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Der beste Weg, den ich gefunden habe, ist derMySQL Migration Toolkitbereitgestellt von MySQL. Ich habe es erfolgreich für einige große Migrationsprojekte verwendet.

Quelle
Translate

SQL Server 2005 "Standard" -, "Developer" - und "Enterprise" -Editionen habenSSISDies hat DTS vom SQL Server 2000 ersetzt. SSIS verfügt über eine integrierte Verbindung zu seiner eigenen Datenbank, und Sie können eine Verbindung finden, die jemand anderes für MySQL geschrieben hat.Hierist ein Beispiel. Sobald Sie Ihre Verbindungen hergestellt haben, sollten Sie in der Lage sein, ein SSIS-Paket zu erstellen, das Daten zwischen den beiden verschiebt.

Ich musste keine Daten von SQlServer nach MySQL verschieben, aber ich stelle mir vor, dass die einmal installierte MySQl-Verbindung genauso funktioniert wie das Verschieben von Daten zwischen zwei SQLServer-DBs, was ziemlich einfach ist.

Quelle
Elton Lee
Translate

Mit MSSQL Management Studio habe ich Tabellen mit der MySQL OLE DB umgestellt. Klicken Sie mit der rechten Maustaste auf Ihre Datenbank und gehen Sie zu "Aufgaben-> Daten exportieren". Dort können Sie eine MsSQL OLE DB-Quelle, die MySQL OLE DB-Quelle, angeben und die Spaltenzuordnungen zwischen den beiden Datenquellen erstellen.

Sie möchten die Datenbank und die Tabellen höchstwahrscheinlich im Voraus auf dem MySQL-Ziel einrichten (beim Export werden die Tabellen automatisch erstellt, dies führt jedoch häufig zu Fehlern). Sie können die Tabellen in MySQL schnell über "Aufgaben-> Skripte generieren" erstellen, indem Sie mit der rechten Maustaste auf die Datenbank klicken. Sobald Ihre Erstellungsskripte generiert wurden, müssen Sie nach Schlüsselwörtern und Typen suchen und diese ersetzen, die in MSSQL bis MYSQL vorhanden sind.

Natürlich können Sie die Datenbank auch wie gewohnt sichern und ein Dienstprogramm finden, das die MSSQL-Sicherung unter MYSQL wiederherstellt. Ich bin mir jedoch nicht sicher, ob es eine gibt.

Quelle
Translate

Das Rolling Ihrer eigenen PHP-Lösung wird sicherlich funktionieren, obwohl ich nicht sicher bin, ob es eine gute Möglichkeit gibt, das Schema automatisch von einer Datenbank in die andere zu duplizieren (vielleicht war dies Ihre Frage).

Wenn Sie nur Daten kopieren und / oder ohnehin benutzerdefinierten Code zum Konvertieren zwischen geänderten Schemas zwischen den beiden DBs benötigen, würde ich die Verwendung von PHP 5.2+ und den PDO-Bibliotheken empfehlen. Sie können eine Verbindung mit PDO ODBC herstellen (und MSSQL-Treiber verwenden). Ich hatte viele Probleme, große Textfelder und Mehrbyte-Zeichen von MSSQL mithilfe anderer Bibliotheken in PHP zu übertragen.

Quelle
Translate

Ein weiteres Tool wäre die SQLMaestro-Suite -http://www.sqlmaestro.comEs ist ein wenig schwierig, das genaue Tool zu finden, aber es gibt eine Vielzahl von Tools, sowohl kostenlos als auch zum Kauf, die eine Vielzahl von Aufgaben für mehrere Datenbankplattformen erledigen. Ich würde vorschlagen, zuerst das Tool des Datenassistenten für MySQL zu testen, da ich glaube, dass es das richtige "Import" -Tool hat, das Sie benötigen.

Quelle