sql >> Databáze >  >> RDS >> Mysql

Jak migrovat databázi MS SQL běžící na vzdáleném počítači do mé místní databáze MySQL běžící na linuxu při zachování kódování

Pomocí MySQL Workbench jsem zkoušel tyto kombinace, žádná z nich nefungovala:

vzdálený MS SQL> vzdálený nativní ovladač ODBC MySQL

vzdálený MS SQL> vzdálený ovladač MySQL ODBC DataSource

vzdálený MS SQL> vzdálený ovladač MySQL freeTDS ODBC (s nebo bez UTF-8)

virtuální MS SQL> virtuální nativní ovladač ODBC pro MySQL

virtuální MS SQL> virtuální ovladač MySQL ODBC DataSource

virtuální MS SQL> virtuální MySQL freeTDS ODBC ovladač (s nebo bez UTF-8)

V obou těchto případech se buď proces migrace zasekl (Neodpovídající pracovní plocha) nebo znaky nebyly přeneseny správně.

Celková doba pokusů a omylů byla přibližně 12 hodin.

Zde se s vámi podělím o jeden způsob, jak jsem byl schopen úspěšně migrovat celou databázi MS SQL na můj lokální MySQL server běžící na mém dev stroji.

Když jsem se připojoval ke vzdálenému počítači W10 prostřednictvím připojení ke vzdálené ploše (RDC) ze svého počítače VirtualBox, chtěl jsem nejprve odstranit tento další krok, abych si to usnadnil.

  1. pokud ještě nemáte, stáhněte a nainstalujte si zdarma počítač Virtual Box které Microsoft nabízí a spusťte jej

  2. z tohoto virtuálního počítače spusťte RDC a před připojením přidejte místní disk na virtuální počítač, aby byl dostupný na vzdáleném počítači

  3. na vzdáleném počítači spusťte SQL Server management studio a vytvořte zálohu databáze (klikněte pravým tlačítkem na požadovanou databázi, Úkoly> Záloha..., uložte záložní soubor na disk)

  4. zkopírujte tento záložní soubor na svůj disk na virtuálním počítači tak, že přejdete na Sítě a nahrajete soubor na disk C:na vašem virtuálním počítači

  5. nainstalovat na svůj virtuální počítač MS SQL server, edici Express, která je zdarma, spolu s SQL Server Management Studio (stáhl jsem si verzi 2014)

  6. vytvořte novou databázi a vyberte Úkoly...> Obnovit> Databáze..., vyberte soubor, který jste nahráli na svůj virtuální počítač, vyberte Přepsat stávající databázi..

  7. vytvořte nové přihlašovací jméno pro váš MS SQL server (klikněte pravým tlačítkem na Logins), vyberte požadované přihlašovací jméno a heslo, přiřaďte roli správce systému, jen pro usnadnění, protože se jedná o jednorázový proces migrace

  8. na místním počítači Host Linux nainstalujte nejnovější MySQL Workbench, předpokládám, že databáze MySQL již lokálně běží, pokud ne, nainstalujte ji

  9. protože používáte Linux, budete potřebovat další krok k instalaci ovladače FreeTDS ODBC do vašeho systému, pokud tento odkaz, jak nainstalovat ovladač FreeTDS na Linux zmizí, vyhledejte Průvodce migrací databáze / migrace Microsoft SQL Server v příručce MySQL Workbench

  10. nastavit virtuální počítač tak, aby byl přístupný z vašeho hostitelského linuxového systému, udělal jsem to tak, že jsem vybral Attached to:Bridged adapter a v nastavení virtuálního počítače vybral wlan0

  11. spusťte virtuální počítač a vyberte rozsah IP ze stejné sítě, jakou používá váš adaptér

  12. na svém virtuálním počítači přidejte pravidlo brány firewall pro server MS SQL nebo dočasně vypněte bránu firewall

Od této chvíle se vše děje na vašem místním počítači se systémem Linux se spuštěným virtuálním počítačem

  1. spusťte migraci databáze MySQL Workbench, vyberte MS SQL jako zdrojový počítač, zadejte správnou IP adresu, kterou jste dříve nastavili ve svém virtuálním počítači

  2. jako cílovou databázi použijte nastavení a přihlašovací údaje místní databáze MySQL

  3. v kroku Možnosti vytvoření cíle vyberte pouze Vytvořit soubor skriptu SQL a vyberte Zachovat schémata, pokud již byla ukončena.

  4. projděte další kroky, dokud se nedostanete k Nastavení přenosu dat. Zde vyberte Online kopie tabulky... ale netiskněte Další

  5. upravte skript uložený v kroku 15.:

odstranit:

CREATE SCHEMA IF NOT EXISTS `Test` ;

přidat:

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

změnit všechny definice tabulek přidáním požadované znakové sady a řazení do definice tabulky:

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. spusťte tento aktualizovaný skript ve vaší databázi MySQL

  2. přejděte k dalšímu kroku v MySQL Workbench a data by se měla importovat správně

Některé kroky možná nejsou výslovně uvedeny, dejte mi prosím vědět v komentářích, pokud potřebujete nějaké vysvětlení




  1. docker commit mysql neukládá

  2. CurrentUtcDateTime neexistuje - Entity Framework a MySql

  3. Laravel 5 Vytvoření nového záznamu, který patří ke 3 dalším tabulkám

  4. MySQL:Vyberte názvy sloupců obsahující řetězec