Como exportar dados do SQL Server 2005 para MySQL

votos
80

Eu estive batendo a cabeça contra SQL Server 2005a tentar obter uma grande quantidade de dados para fora. Eu tenho dado um banco de dados com cerca de 300 tabelas nele e eu preciso transformar isso em um banco de dados MySQL. Minha primeira convocação foi usar bcp mas, infelizmente, não produz CSV válido - cordas não são encapsulados, para que você não pode lidar com qualquer linha que tem uma corda com uma vírgula nele (ou o que você usa como delimitador) e eu ainda teria que escrever à mão todas as instruções cREATE tABLE, como, obviamente, CSV não lhe diz nada sobre os tipos de dados.

O que seria melhor é se houve alguma ferramenta que poderia ligar para o SQL Server e MySQL, em seguida, fazer uma cópia. Você perde vistas, procedimentos armazenados, gatilho, etc, mas não é difícil de copiar uma tabela que só usa tipos base de um DB para outro ... é isso?

Alguém sabe de uma ferramenta? Eu não me importo quantas suposições faz ou o que simplificações ocorrer, desde que ele suporta inteiro, float, datetime e string. Eu tenho que fazer um monte de poda, normalização, etc. assim mesmo assim eu não me importo sobre como manter chaves, relacionamentos ou qualquer coisa assim, mas eu preciso do conjunto inicial de dados em rápido!

Publicado 01/08/2008 em 17:22
fonte usuário
Em outras línguas...                            


5 respostas

votos
58

A melhor maneira que eu encontrei é o Toolkit Migration MySQL fornecido pelo MySQL. Eu tenho usado com sucesso por alguns grandes projetos de migração.

Respondeu 01/08/2008 em 18:54
fonte usuário

votos
8

Usando MSSQL Management Studio eu já transitou tabelas com o OLE DB MySQL. clique direito em seu banco de dados e vá para "Tarefas-> Data Export" a partir daí você pode especificar uma fonte MsSQL OLE DB, o código do MySQL OLE DB e criar os mapeamentos de coluna entre as duas fontes de dados.

Você provavelmente vai querer configurar o banco de dados e tabelas com antecedência sobre o destino MySQL (a exportação vai querer criar as tabelas automaticamente, mas isso muitas vezes resulta em fracasso). Você pode rapidamente criar as tabelas no MySQL usando o "Tarefas-> Gerar Scripts" clicando com o botão direito no banco de dados. Uma vez que seus scripts de criação são gerados você vai precisar para percorrer e procurar / substituir por palavras-chave e tipos que existem em MSSQL para MYSQL.

Claro que você pode também fazer backup do banco de dados como normal e encontrar um utilitário que irá restaurar o backup MSSQL em MYSQL. Eu não tenho certeza se houver no entanto.

Respondeu 15/09/2008 em 17:23
fonte usuário

votos
8

SQL Server 2005 "Standard", "Desenvolvedor" e edições "empresa" tem SSIS , que substituiu DTS através de um servidor SQL 2000. SSIS foi construído em conexão com a sua própria DB, e você pode encontrar uma conexão que alguém tenha escrito para MySQL . Aqui é um exemplo. Depois de ter suas conexões, você deve ser capaz de criar um pacote SSIS que move dados entre os dois.

Eu não tive para mover dados de SQL Server para MySQL, mas eu imagino que uma vez que a conexão MySQL é instalado, ele funciona da mesma forma mover dados entre dois SQLServer bancos de dados, o que é bastante simples.

Respondeu 15/09/2008 em 17:11
fonte usuário

votos
7

Rolar sua própria solução de PHP vai certamente funcionar, embora eu não tenho certeza se há uma boa maneira de duplicar automaticamente o esquema de um banco de dados para o outro (talvez esta foi a sua pergunta).

Se você está apenas copiando dados, e / ou você precisa de um código personalizado de qualquer maneira para converter entre esquemas modificados entre os dois DB, eu recomendaria utilizando PHP 5.2+ e as bibliotecas DOP. Você será capaz de se conectar usando ODBC PDO (e usar drivers MSSQL). Eu tinha um monte de problemas para fazer grandes campos de texto e caracteres multi-byte de MSSQL em PHP utilizando outras bibliotecas.

Respondeu 01/08/2008 em 17:36
fonte usuário

votos
5

Outra ferramenta para tentar seria a suíte SQLMaestro - http://www.sqlmaestro.com É um pouco complicado pregar para baixo a ferramenta precisa, mas eles têm uma variedade de ferramentas, ambos gratuitos e de compra que lidar com uma grande variedade de tarefas para múltiplas plataformas de banco de dados. Eu sugiro tentar a ferramenta Assistente de Dados de primeira para o MySQL, pois acredito que vai ter o bom "importação" ferramenta que você precisa.

Respondeu 01/08/2008 em 17:47
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more