Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да мигрирам MS SQL база данни, работеща на отдалечена машина, към моята локална MySQL база данни, работеща на linux, запазвайки кодирането

Използвайки MySQL Workbench, опитах тези комбинации, нито една от тях не работи:

отдалечен MS SQL> отдалечен собствен MySQL ODBC драйвер

отдалечен MS SQL> отдалечен драйвер за MySQL ODBC DataSource

отдалечен MS SQL> отдалечен MySQL freeTDS ODBC драйвер (със или без UTF-8)

виртуален MS SQL> виртуален MySQL собствен ODBC драйвер

виртуален MS SQL> драйвер за виртуален MySQL ODBC DataSource

виртуален MS SQL> виртуален MySQL freeTDS ODBC драйвер (със или без UTF-8)

И в двата случая или процесът на мигриране е блокирал (неотговаряща работна среда) или знаците не са прехвърлени правилно.

Общото време за проба и грешка беше около 12 часа.

Тук споделям с вас един начин как успях успешно да мигрирам цялата MS SQL база данни към моя локален MySQL сървър, работещ на моята машина за разработка.

Докато се свързвах с отдалечената машина W10 чрез връзка с отдалечен работен плот (RDC) от моята VirtualBox машина, отначало исках да премахна тази допълнителна стъпка, за да улесня нещата.

  1. ако все още нямате, изтеглете и инсталирайте безплатна Virtual Box машина които Microsoft предлага и го стартирайте

  2. от тази виртуална машина стартирайте RDC и преди да се свържете, добавете локален диск към виртуалната машина, за да бъде достъпен на отдалечена машина

  3. на отдалечена машина стартирайте студио за управление на SQL Server и създайте резервно копие на базата данни (Щракнете с десния бутон върху желаната база данни, Задачи> Архивиране..., запазете архивния файл на диска)

  4. копирайте този архивен файл на вашето устройство на виртуална машина, като отидете на Мрежи и качите файла на C:устройство на вашата виртуална машина

  5. инсталирайте на вашата виртуална машина MS SQL сървър, издание Express, което е безплатно, заедно с SQL Server Management Studio (изтеглих версия 2014)

  6. създайте нова база данни и изберете Задачи...> Възстановяване> База данни..., изберете файла, който сте качили на вашата виртуална машина, изберете Презаписване на съществуващата база данни..

  7. създайте ново име за вход за вашия MS SQL сървър (щракнете с десния бутон върху Входни данни), изберете желаното потребителско име и парола, задайте роля на системен администратор, само за да улесните нещата, тъй като това е еднократен процес на миграция

  8. на вашата локална хост Linux машина инсталирайте най-новия MySQL Workbench, предполагам, че MySQL базата данни вече работи локално, ако не, инсталирайте я

  9. тъй като сте на Linux, ще ви е необходима допълнителна стъпка, за да инсталирате FreeTDS ODBC драйвер на вашата система, ако това връзка, как да инсталирате FreeTDS драйвер на Linux умира, потърсете Database Migration Wizard / Microsoft SQL Server migration в MySQL Workbench ръководство

  10. настройка на виртуална машина, за да бъде достъпна от вашата Host linux система, направих това, като избрах Attached to:Bridged adapter и избрах wlan0 в настройките на виртуалната машина

  11. стартирайте виртуална машина и изберете IP обхват от същата мрежа, която използва вашия адаптер

  12. на вашата виртуална машина добавете правило за защитна стена за MS SQL сървър или временно изключете защитната стена

Отсега нататък всичко се прави на вашата локална Linux машина с работеща виртуална машина

  1. стартирайте MySQL Workbench' Database Migration, изберете MS SQL като изходна машина, въведете правилния IP адрес, който сте задали във вашата виртуална машина по-рано

  2. като целева база данни, използвайте настройките и идентификационните данни на вашата локална база данни MySQL

  3. в стъпката Опции за създаване на цел изберете само Създаване на файл със SQL скрипт и изберете Запазване на схеми, ако вече са излезли.

  4. преминете през следващите стъпки, докато стигнете до Настройка на прехвърляне на данни. Там изберете Онлайн копие на таблицата... но не натискайте Напред

  5. редактирайте скрипта, записан в стъпка 15.:

премахване:

CREATE SCHEMA IF NOT EXISTS `Test` ;

добави:

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

променя всички създадени дефиниции на таблици чрез добавяне на желания набор от знаци и съпоставка към дефиницията на таблицата:

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. стартирайте този актуализиран скрипт във вашата MySQL база данни

  2. отидете на следващата стъпка в MySQL Workbench и данните трябва да се импортират правилно

Възможно е някои стъпки да не са изрично посочени, моля, уведомете ме в коментарите, ако имате нужда от разяснения




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да намеря IP адреса на връзката на текущия потребител в MySQL?

  2. Как да копирам данни от една таблица в друга нова таблица в MySQL?

  3. Слушайте промените в базата данни в MySQL

  4. Doctrine QueryBuilder:Връзка ManyToOne, където трябва да съвпадат повече от едно подсъщност

  5. IF функция в H2 за съвместимост с MySQL