Używając MySQL Workbench, wypróbowałem te kombinacje, żadna z nich nie zadziałała:
zdalny MS SQL> zdalny sterownik ODBC dla MySQL
zdalny MS SQL> zdalny sterownik MySQL ODBC DataSource
zdalny MS SQL> zdalny sterownik MySQL freeTDS ODBC (z lub bez UTF-8)
wirtualny MS SQL> wirtualny MySQL natywny sterownik ODBC
wirtualny MS SQL> wirtualny sterownik MySQL ODBC DataSource
wirtualny MS SQL> wirtualny sterownik MySQL freeTDS ODBC (z lub bez UTF-8)
W każdym z tych przypadków albo proces migracji utknął (nie odpowiada Workbench), albo znaki nie zostały poprawnie przeniesione.
Całkowity czas prób i błędów wyniósł około 12 godzin.
Tutaj dzielę się z wami jednym ze sposobów, w jaki udało mi się pomyślnie przenieść całą bazę danych MS SQL na mój lokalny serwer MySQL działający na moim komputerze deweloperskim.
Ponieważ łączyłem się ze zdalną maszyną W10 przez Remote Desktop Connection (RDC) z mojej maszyny VirtualBox, na początku chciałem usunąć ten dodatkowy krok, aby było łatwiej.
-
jeśli jeszcze nie masz, pobierz i zainstaluj bezpłatną maszynę Virtual Box oferowane przez Microsoft i uruchom
-
z tej maszyny wirtualnej uruchom RDC i przed połączeniem dodaj dysk lokalny na maszynie wirtualnej, aby był dostępny na maszynie zdalnej
-
na zdalnym komputerze uruchom studio zarządzania SQL Server i utwórz kopię zapasową bazy danych (kliknij prawym przyciskiem myszy żądaną bazę danych, Zadania> Kopia zapasowa..., zapisz plik kopii zapasowej na dysku)
-
skopiuj ten plik kopii zapasowej na dysk na maszynie wirtualnej, przechodząc do Sieci i przesyłając plik na dysk C:na maszynie wirtualnej
-
zainstaluj na swojej maszynie wirtualnej serwer MS SQL w wersji Express, która jest bezpłatna, wraz z SQL Server Management Studio (pobrałem wersję 2014)
-
utwórz nową bazę danych i wybierz Zadania...> Przywróć> Baza danych..., wybierz plik przesłany do maszyny wirtualnej, wybierz Nadpisz istniejącą bazę danych..
-
utwórz nowy login dla swojego serwera MS SQL (kliknij prawym przyciskiem myszy na Logins), wybierz żądany login i hasło, przypisz rolę sysadmin, aby było łatwiej, ponieważ jest to jednorazowy proces migracji
-
na lokalnym komputerze Host Linux zainstaluj najnowszą wersję MySQL Workbench, zakładam, że baza danych MySQL działa już lokalnie, jeśli nie, zainstaluj ją
-
ponieważ korzystasz z systemu Linux, będziesz potrzebować dodatkowego kroku, aby zainstalować sterownik FreeTDS ODBC w swoim systemie, jeśli ten link, jak zainstalować sterownik FreeTDS w systemie Linux nie działa, poszukaj Kreatora migracji bazy danych / migracji Microsoft SQL Server w instrukcji MySQL Workbench
-
skonfiguruj maszynę wirtualną, aby była dostępna z systemu Linux Host, zrobiłem to, wybierając Attached to:Bridged adapter i wybierając wlan0 w ustawieniach maszyny wirtualnej
-
uruchom maszynę wirtualną i wybierz zakres adresów IP z tej samej sieci, z której korzysta karta
-
na maszynie wirtualnej dodaj regułę zapory dla serwera MS SQL lub tymczasowo wyłącz zaporę
Od teraz wszystko odbywa się na lokalnej maszynie z systemem Linux z uruchomioną maszyną wirtualną
-
uruchom MySQL Workbench' Database Migration, wybierz MS SQL jako maszynę źródłową, wprowadź poprawny adres IP ustawiony wcześniej na maszynie wirtualnej
-
jako docelową bazę danych użyj ustawień i danych logowania lokalnej bazy danych MySQL
-
w kroku Opcje tworzenia celu wybierz tylko Utwórz plik skryptu SQL i wybierz Zachowaj schematy, jeśli już zostały zamknięte.
-
wykonaj kolejne kroki, aż dojdziesz do konfiguracji przenoszenia danych. Tam wybierz kopię tabeli online... ale nie naciskaj Dalej
-
edytuj skrypt zapisany w kroku 15.:
usuń:
CREATE SCHEMA IF NOT EXISTS `Test` ;
dodaj:
CREATE DATABASE `Test` DEFAULT CHARACTER SET utf16 COLLATE utf16_czech_ci;
zmień wszystkie definicje tworzenia tabeli, dodając żądany zestaw znaków i sortowanie do definicji tabeli:
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;
-
uruchom ten zaktualizowany skrypt w swojej bazie danych MySQL
-
przejdź do następnego kroku w MySQL Workbench, a dane powinny zostać poprawnie zaimportowane
Mogą wystąpić pewne kroki, które nie zostały wyraźnie określone, daj mi znać w komentarzach, jeśli potrzebujesz wyjaśnień