it-swarm.com.de

Wie exportiere ich eine SQL Server-Datenbank nach MySQL?

Ich versuche, von einer SQL Server-Datenbank-Sicherungsdatei (.bak) zu MySQL. Diese Frage und Antworten waren sehr nützlich, und ich habe die Datenbank erfolgreich importiert, bin aber jetzt beim Exportieren nach MySQL hängen geblieben.

Das MySQL Migration Toolkit wurde vorgeschlagen, scheint aber durch das MySQL Workbench ersetzt worden zu sein. Ist es möglich, die MySQL Workbench zu verwenden, um von SQL Server auf dieselbe Weise zu migrieren, wie das Migrationstool funktioniert hat?

Oder ist das Migration Toolkit noch irgendwo verfügbar?

81
matkins

Sie können MySQL Workbench verwenden, um Daten und Anwendungen mit weniger Zeit und Aufwand schnell von Microsoft SQL Server nach MySQL zu migrieren.

Dieses Tool hat viele coole Funktionen wie:

  • Datenbankmigrationen - ermöglicht Migrationen von Microsoft SQL Server, Sybase ASE und PostgreSQL.
  • Verwaltung von Migrationsprojekten - Ermöglicht das Konfigurieren, Kopieren, Bearbeiten, Ausführen und Planen von Migrationen.

Lesen Sie mehr http://www.mysql.com/products/workbench/migrate/

48
Javier Cadiz

Ich benutze sqlyog , um von mssql nach mysql zu migrieren. Ich habe Migration Toolkit und Workbench ausprobiert, aber sqlyog gefiel mir wegen SJA . Ich könnte den Importprozess einplanen und mithilfe der WHERE-Klausel einen inkrementellen Import durchführen.

enter image description here

22
Man_k

PhpMyAdmin verfügt über einen Import-Assistenten, mit dem Sie auch einen MSSQL-Dateityp importieren können.

In http://dev.mysql.com/doc/refman/5.1/en/sql-mode.html finden Sie Informationen zu den unterstützten Arten von DB-Skripten.

7

wenn Sie einen MSSQL-kompatiblen SQL-Speicherauszug haben, können Sie ihn mit diesem Online-Tool nacheinander in MySQL-Abfragen konvertieren

http://burrist.com/mstomy.php

Hoffe es hat dir Zeit gespart

6
HimalayanCoder

Wenn Ihre Daten wie oben erwähnt Tabulatorzeichen, Kommas oder Zeilenumbrüche enthalten, ist es sehr schwierig, sie mit CSV zu exportieren und zu importieren. Die Werte laufen aus den Feldern heraus und Sie erhalten Fehler. Dieses Problem ist noch schlimmer, wenn eines Ihrer langen Felder mehrzeiligen Text mit Zeilenumbrüchen enthält.

In diesen Fällen kann ich das BCP-Befehlszeilendienstprogramm verwenden, um die Daten vom SQL Server zu exportieren, und dann den Befehl LOAD DATA INFILE .. INTO TABLE in MySQL verwenden, um die Datendatei wieder einzulesen. BCP ist einer der ältesten SQL Server Befehlszeilen-Dienstprogramme (seit der Geburt von SQL Server - v6.5), aber es gibt sie immer noch und es ist immer noch eine der einfachsten und zuverlässigsten Möglichkeiten, Daten abzurufen.

Um diese Technik zu verwenden, müssen Sie in MySQL jede Zieltabelle mit demselben oder einem entsprechenden Schema erstellen. Ich mache das, indem ich mit der rechten Maustaste auf die Datenbank in SQL Enterprise Manager klicke, dann auf Tasks-> Generate Scripts ... und ein SQL-Skript für alle Tabellen erstelle. Anschließend müssen Sie das Skript von Hand in MySQL-kompatibles SQL konvertieren (definitiv der schlechteste Teil des Jobs) und schließlich die CREATE TABLE-Befehle in der MySQL-Datenbank ausführen, damit Sie spaltenweise, leer und bereit für den Abgleich von Tabellen mit den SQL Server-Versionen sind Daten.

Exportieren Sie dann die Daten von der MS-SQL-Seite wie folgt.

bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t!

(Wenn Sie SQL Server Express verwenden, verwenden Sie einen -S-Wert wie folgt: -S "Computername\SQLExpress")

Dadurch wird eine Datei mit dem Namen TableName.dat erstellt, deren Felder durch! [Tab]! und durch\0 NUL Zeichen getrennte Zeilen.

Kopieren Sie nun die .dat-Dateien nach/tmp auf dem MySQL-Server und laden Sie sie auf der MySQL-Seite wie folgt:

LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0';

Vergessen Sie nicht, dass die Tabellen (in diesem Beispiel TableName) bereits auf der MySQL-Seite erstellt werden müssen.

Dieses Verfahren ist schmerzhaft manuell, wenn es darum geht, das SQL-Schema zu konvertieren. Es funktioniert jedoch auch für die schwierigsten Daten und da es Flatfiles verwendet, müssen Sie SQL Server nie überreden, mit MySQL zu sprechen, oder umgekehrt.

5

Sie können dies einfach mit dem Tool Data Loader tun. Ich habe dies bereits getan, bevor ich dieses Tool verwendet habe, und fand es gut.

4
Kevin

Ich habe die folgende Verbindungszeichenfolge auf der Registerkarte "Erweitert" von MySQL Migration Tool Kit verwendet, um eine Verbindung zur SQL Server 2008-Instanz herzustellen:

jdbc:jtds:sqlserver://"sql_server_ip_address":1433/<db_name>;Instance=<sqlserver_instanceName>;user=sa;password=PASSWORD;namedPipe=true;charset=utf-8;domain= 

Normalerweise hat der Parameter "systemName\instanceName". Aber im obigen Beispiel nicht hinzufügen "Systemname \" (nur Instanzname verwenden).

Um zu überprüfen, wie der Instanzname lauten soll, rufen Sie services.msc auf und überprüfen Sie den Anzeigenamen der MSSQL-Instanz. Es zeigt ähnlich wie MSSQL $ instanceName.

Hoffe, diese Hilfe in MSSQL-Konnektivität von MySQL Migration ToolKit.

Es sieht so aus, als ob Sie richtig liegen: Das Migration Toolkit soll in MySQL Workbench integriert werden - ich glaube jedoch, dass dies noch nicht abgeschlossen ist. Weitere Informationen finden Sie in der Ankündigung zum Lebensende der MySQL-GUI-Tools (einschließlich des Migration Toolkit):

http://www.mysql.com/support/eol-notice.html

MySQL verwaltet Archive der MySQL GUI Tools-Pakete:

http://dev.mysql.com/downloads/gui-tools/5.0.html

2
Martin

Das MySQL Migration Toolkit (1.1.10) kann weiterhin hier heruntergeladen werden:

http://downloads.mysql.com/archives.php?p=MySQLDeveloperSuite&v=1.1.1

1
Matias P.

downloads sind auf der offiziellen Website nicht mehr verfügbar ( http://dev.mysql.com/downloads/gui-tools/5.0.html ). Schauen Sie stattdessen hier nach: http: //download.softagency.net/MySQL/Downloads/MySQLGUITools/

0
Marco C.

Ich hatte einige Daten, die ich von MSSQL in MYSQL bekommen musste, hatte Schwierigkeiten, eine Lösung zu finden. Also, was ich am Ende getan habe (ein bisschen langwieriger Weg, es zu tun, aber als letztes Mittel funktioniert es) war:

  • Öffnen Sie die MSSQL-Datenbank in SQL Server Management Studio Express (ich habe 2005 verwendet)
  • Öffne jeden Tisch der Reihe nach und
  • Klicken Sie in die obere linke Ecke, um die gesamte Tabelle auszuwählen:

  • Daten in die Zwischenablage kopieren (Strg + V)

  • Öffnen Sie MS Excel
  • Einfügen von Daten aus der Zwischenablage
  • Speichern Sie die Excel-Datei als .csv
  • Wiederholen Sie das oben für jede Tabelle
  • Sie sollten nun in der Lage sein, die Daten in MySQL zu importieren

Hoffe das hilft

0
Dave