Usando o MySQL Workbench, tentei essas combinações, nenhuma delas funcionou:
MS SQL remoto> driver ODBC nativo do MySQL remoto
remoto MS SQL> driver remoto MySQL ODBC DataSource
MS SQL remoto> driver ODBC freeTDS MySQL remoto (com ou sem UTF-8)
virtual MS SQL> driver ODBC nativo do MySQL virtual
virtual MS SQL> driver virtual MySQL ODBC DataSource
virtual MS SQL> driver virtual MySQL freeTDS ODBC (com ou sem UTF-8)
Em qualquer um desses casos, o processo de migração ficou travado (Workbench sem resposta) ou os caracteres não foram transferidos corretamente.
O tempo total de tentativa e erro foi de cerca de 12 horas.
Aqui estou compartilhando com você uma maneira de como consegui migrar com sucesso todo o banco de dados MS SQL para o meu servidor MySQL local em execução na minha máquina de desenvolvimento.
Como eu estava me conectando à máquina W10 remota via Remote Desktop Connection (RDC) da minha máquina VirtualBox, a princípio eu queria remover essa etapa extra para facilitar as coisas.
-
se ainda não tiver, baixe e instale a máquina Virtual Box gratuita que a Microsoft oferece e iniciá-lo
-
a partir desta máquina virtual inicie o RDC e antes de conectar, adicione o disco local na máquina virtual para estar disponível na máquina remota
-
na máquina remota inicie o SQL Server Management Studio e crie um backup do banco de dados (clique com o botão direito do mouse no banco de dados desejado, Tarefas> Backup..., salve o arquivo de backup no disco)
-
copie este arquivo de backup para sua unidade na máquina virtual navegando até Redes e fazendo upload do arquivo para a unidade C:em sua máquina virtual
-
instale na sua máquina virtual MS SQL server, edição Express que é gratuita, junto com o SQL Server Management Studio (descarreguei a versão 2014)
-
crie um novo banco de dados e selecione Tarefas...> Restaurar> Banco de dados..., selecione o arquivo que você carregou para sua máquina virtual, selecione Substituir o banco de dados existente..
-
crie um novo login para o seu servidor MS SQL (clique com o botão direito do mouse em Logins), selecione o login e a senha desejados, atribua uma função sysadmin, apenas para facilitar as coisas, pois este é um processo de migração único
-
em sua máquina local Host Linux instale o MySQL Workbench mais recente, suponho que o banco de dados MySQL já esteja sendo executado localmente, caso contrário, instale-o
-
como você está no Linux, precisará de uma etapa extra para instalar o driver ODBC do FreeTDS em seu sistema, se isso link, como instalar o driver FreeTDS no Linux for morto, procure por migração do Assistente de migração de banco de dados / Microsoft SQL Server no manual do MySQL Workbench
-
configurar a máquina virtual para ser acessível a partir do seu sistema Host linux, eu fiz isso selecionando Attached to:Bridged adapter e escolhendo wlan0 nas configurações da máquina virtual
-
inicie a máquina virtual e selecione o intervalo de IP da mesma rede que o adaptador usa
-
em sua máquina virtual, adicione uma regra de firewall para o servidor MS SQL ou desative o firewall temporariamente
A partir de agora, tudo é feito em sua máquina Linux local com a máquina virtual em execução
-
inicie a migração de banco de dados do MySQL Workbench, selecione MS SQL como uma máquina de origem, insira o endereço IP correto que você configurou em sua máquina virtual anteriormente
-
como um banco de dados de destino, use as configurações e credenciais do banco de dados MySQL local
-
na etapa Opções de criação de destino, selecione apenas Criar um arquivo de script SQL e selecione Manter esquemas se eles já existirem.
-
siga as próximas etapas até chegar à configuração da transferência de dados. Lá selecione Cópia online da tabela... mas não pressione Avançar
-
edite o script salvo na etapa 15.:
remover:
CREATE SCHEMA IF NOT EXISTS `Test` ;
adicionar:
CREATE DATABASE `Test` DEFAULT CHARACTER SET utf16 COLLATE utf16_czech_ci;
altere todas as definições de criação de tabela adicionando o conjunto de caracteres e o agrupamento desejados à definição da tabela:
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;
-
execute este script atualizado em seu banco de dados MySQL
-
vá para a próxima etapa no MySQL Workbench e os dados devem ser importados corretamente
Pode haver alguns passos não declarados explicitamente, por favor, deixe-me saber nos comentários se você precisar de alguns esclarecimentos