¿Cómo exportar la base de datos de SQL Server a MySQL?

Estoy tratando de convertir de un archivo de copia de seguridad de base de datos de SQL Server ( .bak ) a MySQL. Esta pregunta y respuestas han sido muy útiles, y he importado con éxito la base de datos, pero ahora estoy atascado en la exportación a MySQL.

Se sugirió MySQL Migration Toolkit , pero parece haber sido reemplazado por MySQL Workbench . ¿Es posible usar MySQL Workbench para migrar desde SQL Server de la misma manera que funcionó la herramienta de migración?

¿O el kit de herramientas de migración todavía está disponible en algún lugar?

Puede utilizar MySQL Workbench que proporciona una forma de migrar rápidamente datos y aplicaciones de Microsoft SQL Server a MySQL empleando menos tiempo y esfuerzo.

Esta herramienta tiene muchas características geniales como:

  • Migraciones de bases de datos : permite migraciones desde Microsoft SQL Server, Sybase ASE y PostgreSQL.
  • Gestión de proyectos de migración : permite configurar, copiar, editar, ejecutar y progtwigr migraciones.

Leer más http://www.mysql.com/products/workbench/migrate/

Uso sqlyog para migrar de mssql a mysql. Intenté Migration toolkit y workbench, pero me gustó sqlyog para su SJA . Pude progtwigr el proceso de importación y pude hacer una importación incremental usando la cláusula WHERE.

enter image description here

Como se mencionó anteriormente, si sus datos contienen caracteres tabulados, comas o nuevas líneas en sus datos, será muy difícil exportarlos e importarlos con CSV. Los valores se desbordarán fuera de los campos y obtendrá errores. Este problema es aún peor si alguno de sus campos largos contiene texto de varias líneas con caracteres de nueva línea en ellos.

Mi método en estos casos es usar la utilidad de línea de comandos BCP para exportar los datos del servidor SQL, luego usar el comando LOAD DATA INFILE .. INTO TABLE en MySQL para volver a leer el archivo de datos. BCP es uno de los servidores SQL más antiguos utilidades de línea de comandos (que se remontan al nacimiento del servidor SQL – v6.5) pero aún existen y siguen siendo una de las formas más fáciles y confiables de obtener datos.

Para utilizar esta técnica, debe crear cada tabla de destino con el mismo esquema o un esquema equivalente en MySQL. Lo hago haciendo clic derecho en la base de datos en el administrador de la empresa SQL, luego Tareas-> Generar secuencias de comandos … y crear una secuencia de comandos SQL para todas las tablas. A continuación, debe convertir manualmente el script en SQL compatible con MySQL (definitivamente la peor parte del trabajo) y finalmente ejecutar los comandos CREATE TABLE en la base de datos MySQL para tener tablas coincidentes con las versiones del servidor SQL en columna, vacías y listas para datos.

Luego, exporte los datos desde el lado de MS-SQL de la siguiente manera.

 bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t! 

(Si usa SQL Server Express, use un valor -S como: -S “ComputerName \ SQLExpress”)

Eso creará un archivo llamado TableName.dat, con campos delimitados por! [Tab]! y filas delimitadas por \ 0 caracteres NUL.

Ahora copie los archivos .dat en / tmp en el servidor MySQL y cargue en el lado de MySQL como sigue:

 LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0'; 

No olvide que las tablas (TableName en este ejemplo) se deben crear ya en el lado de MySQL.

Este procedimiento es dolorosamente manual cuando se trata de convertir el esquema SQL, sin embargo, funciona incluso para los datos más difíciles y debido a que utiliza archivos planos, nunca es necesario convencer a SQL Server para que hable con MySQL, o viceversa.

PhpMyAdmin tiene un asistente de importación que también te permite importar un tipo de archivo MSSQL.

Consulte http://dev.mysql.com/doc/refman/5.1/en/sql-mode.html para ver los tipos de scripts DB que admite.

Puede hacerlo fácilmente utilizando la herramienta Cargador de datos . Ya lo hice antes de usar esta herramienta y me pareció buena.

si tiene un volcado SQL compatible con MSSQL, puede convertirlo a consultas MySQL uno por uno usando esta herramienta en línea

http://burrist.com/mstomy.php

Espero que haya ahorrado su tiempo

Parece que ha corregido: Migration Toolkit se integrará con MySQL Workbench, pero no creo que esto se haya completado aún. Consulte el anuncio sobre el final de la vida útil de las herramientas de la GUI de MySQL (que incluye el kit de herramientas de migración):

http://www.mysql.com/support/eol-notice.html

MySQL mantiene los archivos de los paquetes de herramientas de la GUI de MySQL:

http://dev.mysql.com/downloads/gui-tools/5.0.html

Utilicé la cadena de conexión a continuación en la pestaña Avanzado del Kit de herramientas de migración de MySQL para conectarme a la instancia de SQL Server 2008:

 jdbc:jtds:sqlserver://"sql_server_ip_address":1433/;Instance=;user=sa;password=PASSWORD;namedPipe=true;charset=utf-8;domain= 

Por lo general, el parámetro tiene “systemName \ instanceName”. Pero en lo anterior, no agregue “nombre del sistema \” (use solo InstanceName).

Para verificar qué nombre de instancia debe ser, vaya a services.msc y compruebe el DisplayName de la instancia de MSSQL. Muestra similar a MSSQL $ instanceName.

Espero que esta ayuda en la conectividad MSSQL desde mysql migration toolKit.

MySQL Migration Toolkit (1.1.10) todavía está disponible para descargar desde aquí:

http://downloads.mysql.com/archives.php?p=MySQLDeveloperSuite&v=1.1.10

las descargas ya no están disponibles en el sitio web oficial ( http://dev.mysql.com/downloads/gui-tools/5.0.html ), échele un vistazo aquí: http://download.softagency.net/MySQL/Downloads / MySQLGUITools /

Tenía algunos datos que tenía que obtener de mssql en mysql, tenía dificultades para encontrar una solución. Entonces, lo que hice al final (una forma un poco larga para hacerlo, pero como último recurso funciona) fue:

  • Abra la base de datos mssql en sql server management studio express (utilicé 2005)
  • Abra cada mesa por turno y
  • Haga clic en el cuadro de la esquina superior izquierda para seleccionar toda la tabla:

  • Copiar datos en el portapapeles (ctrl + v)

  • Abre ms excel
  • Pegar datos del portapapeles
  • Guarde el archivo de Excel como .csv
  • Repite lo anterior para cada mesa
  • Ahora debería poder importar los datos en mysql

Espero que esto ayude