Tengo un archivo .sql de un volcado MySQL que contiene tablas, definiciones y datos para insertar en estas tablas. ¿Cómo puedo convertir esta base de datos representada en el archivo de volcado a una base de datos de MS SQL Server?Importar base de datos MySQL en un servidor MS SQL
Respuesta
he encontrado una manera para esto en la red
Exige un poco de trabajo, ya que tiene que ser hecho por la mesa de mesa. Pero de todos modos, podría copiar las tablas, los datos y las restricciones en una base de datos MS SQL.
Aquí está el enlace
http://www.codeproject.com/KB/database/migrate-mysql-to-mssql.aspx
Eso es cuando Mysql y SQL están en una máquina o están conectados a través de una red. Esto no es útil cuando existen dos máquinas diferentes y tiene un archivo de volcado de mysql. ¿derecho? – Espanta
Si realiza una exportación con PhpMyAdmin, puede cambiar el modo de compatibilidad sql a 'MSSQL'. De esta forma, solo ejecuta el script exportado contra su base de datos MS SQL y listo.
Si no puede o no quiere usar PhpMyAdmin, también hay una opción de compatibilidad en mysqldump, pero personalmente prefiero que PhpMyAdmin lo haga por mí.
@marga, no funcionó para MS SQL 2008. – marionmaiden
Esta respuesta funcionó para mí, con modificaciones mínimas al guión generado. Lo trajo a SQL Server 2012. No vi el modo de compatibilidad antes. – Kiel
puedo sugerir que use mysqldump así:
mysqldump --compatible=mssql
phpMyAdmin sigue siendo una aplicación web y, potencialmente, podrían tener algunas limitaciones para grandes bases de datos (tiempo de ejecución del script, memoria asignable, etc.)
@deklin, no funcionó para MS SQL 2008. – marionmaiden
Por desgracia, esto me da todo tipo de problemas de compatibilidad. La secuencia de comandos contendrá trazos en torno a los nombres de las columnas, los tipos de datos que no existen en MSSQL, violará la restricción de máx. 1000 inserciones, palabras clave de autoincremento, etc. Esta respuesta es una sugerencia lógica, pero me temo que no No funciona demasiado bien (al menos: no fue para mí). – Jeroen
Uso SQL Server Migration Assistant (SSMA)
Además de MySQL soporta Oracle, Sybase y MS Access.
Parece ser bastante inteligente y capaz de manejar incluso transferencias no triviales. También tiene alguna interfaz de línea de comandos (además de GUI) por lo que teóricamente puede integrarse en algún proceso de carga por lotes.
Esta el enlace de descarga actual de MySQL versión http://www.microsoft.com/en-us/download/details.aspx?id=42657
La corriente (junio de 2016) versión estable 6.0.1 bloquea con la corriente (5.3.6) controlador MySQL ODBC mientras la transferencia de datos. Todo 64 bit. La versión 5.3 con el controlador ODBC 5.1.13 funciona bien.
Esta herramienta solo funciona si puede instalar un conector ODBC desde su PC a su base de datos MySQL. Si solo tiene un archivo de volcado .sql, no puede usar SSMA. –
El motor MySQL es software gratuito, y también hay una versión para Windows. Instalarlo y cargar el volcado es un trabajo trivial. Si esperas encontrar una herramienta (incluso comercial, y mucho menos gratuita) que convierta de manera confiable una secuencia de comandos MySQL arbitraria a su equivalente de SQL Server, bueno, buena suerte con eso. –
Buen punto. Y eso es lo que terminé haciendo ayer. A menos que escriba su propia utilidad de conversión personalizada, la instalación de MySQL parece ser la mejor opción. SSMA fue un dolor en el trasero para usar, pero eventualmente conseguí que funcionara. –
Aquí está mi enfoque para la importación.archivos SQL para MS SQL:
Exportar tabla de MySQL con
--compatible=mssql
y--extended-insert=FALSE
opciones:mysqldump -u [username] -p --compatible=mssql --extended-insert=FALSE db_name table_name > table_backup.sql
Dividir el archivo exportado con PowerShell 300000 líneas por archivo:
$i=0; Get-Content exported.sql -ReadCount 300000 | %{$i++; $_ | Out-File out_$i.sql}
Ejecutar cada archivo en MS SQL Server Management Studio
Hay algunos consejos how to speed up the inserts.
Other approach is to use mysqldump –where
option. Al usar esta opción, puede dividir su tabla en cualquier condición que sea compatible con la cláusula where
sql.
cómo podemos exportar toda la base de datos en lugar de tabla por tabla – MonsterMMORPG
intente con la palabra clave '--databases [nombre_db]' como se explica en esta respuesta: http://stackoverflow.com/a/26096339/155687 – Vladislav
este tipo tiene un truco simple usando MS Access como un tunel entre MySQL y MSSQL
Puede leer el post en http://azamudd.in/convert-data-from-mysql-into-mssql-the-easy-way-via-ms-access/
También se puede utilizar 'ODBC' + 'Servidor de importación de SQL y Asistente para exportación '. continuación enlace lo describe: https://www.mssqltips.com/sqlservertutorial/2205/mysql-to-sql-server-data-migration/
que tenían un problema muy similar en la actualidad - que necesitaba para copiar una tabla grande (5 millones de filas) a partir de MySQL en MS SQL.
Estos son los pasos que he hecho (bajo Ubuntu Linux):
crea una tabla en MS SQL, que coincide con la estructura de la tabla de origen en MySQL.
instalada la línea de comandos de MS SQL: https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu
mesa Dumped de MySQL a un archivo:
mysqldump \ --compact \ --complete-insert \ --no-create-info \ --compatible=mssql \ --extended-insert=FALSE \ --host "$MYSQL_HOST" \ --user "$MYSQL_USER" \ -p"$MYSQL_PASS" \ "$MYSQL_DB" \ "$TABLE" > "$FILENAME"
En mi caso el vertedero el archivo era bastante grande, así que decidí dividirlo en varias piezas pequeñas (1000 líneas cada una) -
split --lines=1000 "$FILENAME" part-
Por último, me repiten a lo largo de estos pequeños archivos, hicieron algunos reemplazos de texto, y ejecutado las piezas una a una en contra de MS SQL Server:
export SQLCMD=/opt/mssql-tools/bin/sqlcmd x=0 for file in part-* do echo "Exporting file [$file] into MS SQL. $x thousand(s) processed" # replaces \' with '' sed -i "s/\\\'/''/g" "$file" # removes all " sed -i 's/"//g' "$file" # allows to insert records with specified PK(id) sed -i "1s/^/SET IDENTITY_INSERT $TABLE ON;\n/" "$file" "$SQLCMD" -S "$AZURE_SERVER" -d "$AZURE_DB" -U "$AZURE_USER" -P "$AZURE_PASS" -i "$file" echo "" echo "" x=$((x+1)) done echo "Done"
Por supuesto que tendrá que reemplazar mis variables como $AZURE_SERVER
, $TABLE
, etc. con tigo.
Espero que ayude.
- 1. Replicando/clonando datos de un servidor MS SQL a otro
- 2. Convertir la base de datos del servidor MS SQL (archivo .mdf) a MySQL a través de PhpMyAdmin?
- 3. Importar matriz de datos Excel en base de datos MySQL
- 4. Almacenamiento de tipo de datos desconocido en la base de datos del servidor MS SQL
- 5. Puede PHP trabajar con una base de datos MS SQL
- 6. Importar XML a la base de datos SQL
- 7. Error al importar SQL Dump en MySQL: base de datos Desconocida/No se puede crear la base de datos
- 8. Importar varios archivos de volcado .sql en la base de datos mysql desde el shell
- 9. importar grandes CSV en la base de datos MySQL
- 10. SQL Server: Importar base de datos desde .mdf?
- 11. Cómo importar archivos sql que son más de 10mb en la base de datos mysql
- 12. Cómo importar mdb al servidor sql
- 13. Completar una base de datos de MS Access en Linux
- 14. Base de datos local sin servidor sql
- 15. Importar datos de Google Spreadsheets en MySQL
- 16. Configuración de Liquibase con el servidor MS-SQL
- 17. La forma más fácil de importar datos desde Mi Sql al servidor Sql
- 18. Importar archivo .sql en Access
- 19. Conexión a la base de datos MySQL en el servidor
- 20. Importación de la base de datos MySQL de un servidor a otro
- 21. Cómo instalar WordPress en MS SQL
- 22. replicación mysql - servidor esclavo en una base de datos
- 23. ¿Cómo exportar e importar la base de datos mysql con sus datos usando el script php?
- 24. Cómo importar un archivo .bak de SQL Server en MySQL?
- 25. ¿Por qué obtengo caracteres no válidos al convertir datos MS SQL a MYSQL?
- 26. ¿Cómo conectar Android al servidor de base de datos MySql?
- 27. Estrategias para copiar datos de una base de datos MySQL en vivo a un servidor intermedio
- 28. migrar datos de MS SQL a PostgreSQL?
- 29. importación de base de datos MySQL
- 30. Fundición del servidor MS SQL sin excepción
¿Tiene también acceso a la base de datos original?¿O el archivo de exportación es básicamente todo lo que tienes? – Whakkee
También tengo acceso a la base de datos original. Solo pensé que usar el volcado podría ser más fácil – marionmaiden