Frage

Ich habe meinen Kopf dagegen geschlagen SQL Server 2005 Ich versuche, viele Daten herauszubekommen.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-Datei – Zeichenfolgen sind nicht gekapselt, sodass Sie nicht mit Zeilen umgehen können, die eine Zeichenfolge mit einem Komma enthalten (oder was auch immer Sie als Trennzeichen verwenden). und ich müsste immer noch alle Anweisungen zum Erstellen einer Tabelle von Hand schreiben, da CSV Ihnen offensichtlich nichts über die Datentypen sagt.

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

Kennt jemand ein solches Tool?Es macht mir nichts aus, wie viele Annahmen es trifft oder welche Vereinfachungen auftreten, solange es Ganzzahl, Float, Datum/Uhrzeit und Zeichenfolge unterstützt.Ich muss viel beschneiden, normalisieren usw.Wie dem auch sei, es ist mir also egal, ob ich Schlüssel, Beziehungen oder ähnliches behalten möchte, aber ich brauche schnell die ersten Daten!

Keine korrekte Lösung

Andere Tipps

Der beste Weg, den ich gefunden habe, ist der MySQL-Migrations-Toolkit bereitgestellt von MySQL.Ich habe es bei einigen großen Migrationsprojekten erfolgreich eingesetzt.

Die Editionen „Standard“, „Developer“ und „Enterprise“ von SQL Server 2005 verfügen über SSIS, das DTS von SQL Server 2000 ersetzte.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. Hier ist 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 es nach der Installation der MySQl-Verbindung genauso funktioniert wie das Verschieben von Daten zwischen zwei SQLServer-Datenbanken, was ziemlich einfach ist.

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

Wahrscheinlich möchten Sie die Datenbank und die Tabellen vorab auf dem MySQL-Ziel einrichten (der Export möchte die Tabellen automatisch erstellen, was jedoch häufig zu Fehlern führt).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 Erstellungsskripts generiert sind, müssen Sie schrittweise nach Schlüsselwörtern und Typen suchen/ersetzen, die in MSSQL in MYSQL vorhanden sind.

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

Das Rollieren 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 das Ihre Frage).

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

Ein weiteres Tool zum Ausprobieren wäre die SQLMaestro-Suite - http://www.sqlmaestro.com Es ist ein wenig schwierig, das genaue Tool zu finden, aber es gibt eine Vielzahl kostenloser und käuflicher Tools, die eine Vielzahl von Aufgaben für mehrere Datenbankplattformen bewältigen.Ich würde vorschlagen, zuerst das Data Wizard-Tool für MySQL auszuprobieren, da ich glaube, dass es das richtige „Import“-Tool bietet, das Sie benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top