Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So migrieren Sie eine MS SQL-Datenbank, die auf einem Remote-Computer ausgeführt wird, in meine lokale MySQL-Datenbank, die unter Linux ausgeführt wird, wobei die Codierung beibehalten wird

Mit MySQL Workbench habe ich diese Kombinationen ausprobiert, keine davon hat funktioniert:

Remote MS SQL> Remote MySQL nativer ODBC-Treiber

Remote MS SQL> Remote MySQL ODBC DataSource-Treiber

remote MS SQL> remote MySQL freeTDS ODBC-Treiber (mit oder ohne UTF-8)

virtuelles MS SQL> virtueller nativer MySQL-ODBC-Treiber

virtuelles MS SQL> virtueller MySQL ODBC DataSource-Treiber

virtuelles MS SQL> virtueller MySQL freeTDS ODBC-Treiber (mit oder ohne UTF-8)

In beiden Fällen blieb entweder der Migrationsprozess hängen (Workbench antwortet nicht) oder die Zeichen wurden nicht korrekt übertragen.

Die gesamte Trial-and-Error-Zeit betrug etwa 12 Stunden.

Hier teile ich mit Ihnen einen Weg, wie ich die gesamte MS SQL-Datenbank erfolgreich auf meinen lokalen MySQL-Server migrieren konnte, der auf meinem Entwicklungscomputer ausgeführt wird.

Da ich mich von meinem VirtualBox-Rechner über Remote Desktop Connection (RDC) mit dem entfernten W10-Rechner verbunden habe, wollte ich diesen zusätzlichen Schritt zunächst entfernen, um die Dinge einfacher zu machen.

  1. Falls noch nicht geschehen, laden Sie die kostenlose Virtual Box-Maschine herunter und installieren Sie sie die Microsoft anbietet und starte es

  2. Starten Sie von dieser virtuellen Maschine aus RDC und fügen Sie vor dem Verbinden eine lokale Festplatte auf der virtuellen Maschine hinzu, die auf der Remote-Maschine verfügbar sein soll

  3. Starten Sie auf dem entfernten Rechner SQL Server Management Studio und erstellen Sie eine Sicherungskopie der Datenbank (Rechtsklick auf die gewünschte Datenbank, Aufgaben> Sichern..., Sicherungsdatei auf der Festplatte speichern)

  4. Kopieren Sie diese Sicherungsdatei auf Ihr Laufwerk auf der virtuellen Maschine, indem Sie zu Netzwerke navigieren und die Datei auf Laufwerk C:auf Ihrer virtuellen Maschine hochladen

  5. Installieren Sie auf Ihrer virtuellen Maschine MS SQL Server, Express Edition, die kostenlos ist, zusammen mit SQL Server Management Studio (ich habe Version 2014 heruntergeladen)

  6. Erstellen Sie eine neue Datenbank und wählen Sie Aufgaben...> Wiederherstellen> Datenbank..., wählen Sie die Datei aus, die Sie auf Ihre virtuelle Maschine hochgeladen haben, wählen Sie Vorhandene Datenbank überschreiben..

  7. Erstellen Sie ein neues Login für Ihren MS SQL-Server (Rechtsklick auf Logins), wählen Sie das gewünschte Login und Passwort aus, weisen Sie eine Sysadmin-Rolle zu, nur um die Dinge zu vereinfachen, da dies ein einmaliger Migrationsprozess ist

  8. Installieren Sie auf Ihrem lokalen Host-Linux-Rechner die neueste MySQL Workbench. Ich gehe davon aus, dass die MySQL-Datenbank bereits lokal ausgeführt wird. Wenn nicht, installieren Sie sie

  9. Da Sie unter Linux arbeiten, benötigen Sie einen zusätzlichen Schritt, um den FreeTDS ODBC-Treiber auf Ihrem System zu installieren, wenn dies Link, wie man den FreeTDS-Treiber unter Linux installiert tot ist, suchen Sie im MySQL Workbench-Handbuch nach Database Migration Wizard / Microsoft SQL Server-Migration

  10. Richten Sie die virtuelle Maschine so ein, dass sie von Ihrem Host-Linux-System aus zugänglich ist. Ich habe dies getan, indem ich Attached to:Bridged Adapter und wlan0 in den Einstellungen der virtuellen Maschine ausgewählt habe

  11. Starten Sie die virtuelle Maschine und wählen Sie den IP-Bereich aus demselben Netzwerk aus, das Ihr Adapter verwendet

  12. Fügen Sie auf Ihrer virtuellen Maschine eine Firewall-Regel für MS SQL Server hinzu oder schalten Sie die Firewall vorübergehend aus

Von nun an wird alles auf Ihrem lokalen Linux-Rechner mit laufender virtueller Maschine erledigt

  1. Starten Sie die Datenbankmigration von MySQL Workbench, wählen Sie MS SQL als Quellmaschine aus, geben Sie die korrekte IP-Adresse ein, die Sie zuvor in Ihrer virtuellen Maschine eingerichtet haben

  2. Verwenden Sie als Zieldatenbank Ihre lokalen MySQL-Datenbankeinstellungen und -Anmeldeinformationen

  3. Wählen Sie im Schritt Zielerstellungsoptionen nur SQL-Skriptdatei erstellen und Schemas beibehalten, wenn sie bereits beendet sind.

  4. Führen Sie die nächsten Schritte durch, bis Sie zum Setup der Datenübertragung gelangen. Wählen Sie dort Online-Kopie der Tabelle... aber drücken Sie nicht Weiter

  5. Bearbeiten Sie das in Schritt 15 gespeicherte Skript:

entfernen:

CREATE SCHEMA IF NOT EXISTS `Test` ;

hinzufügen:

CREATE DATABASE `Test` DEFAULT CHARACTER SET utf16 COLLATE utf16_czech_ci;

Ändern Sie alle Erstellungstabellendefinitionen, indem Sie der Tabellendefinition den gewünschten Zeichensatz und die Sortierung hinzufügen:

CREATE TABLE IF NOT EXISTS `TestTable` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf16_czech_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf16 COLLATE=utf16_czech_ci;
  1. Führen Sie dieses aktualisierte Skript in Ihrer MySQL-Datenbank aus

  2. Gehen Sie zum nächsten Schritt in MySQL Workbench und die Daten sollten korrekt importiert werden

Es kann einige Schritte geben, die nicht explizit angegeben sind. Bitte lassen Sie es mich in den Kommentaren wissen, wenn Sie einige Klarstellungen benötigen