Migrar una base de datos a MySQL

  • Por
  • 23 de julio de 2003
  • Valoración:
  • 9 Comentarios
  • MySQL
Indicaciones útiles para migrar una base de datos a MySQL, es decir, cuando tenemos que subir una base de datos local en cualquier gestor a una base de datos remota en MySQL.
El último caso en el que nos podemos encontrar a la hora de subir una base de datos a nuestro proveedor de alojamiento es que la base de datos la tengamos creada en local, pero en un sistema gestor distinto del que vamos a utilizar en remoto. En remoto suponemos siempre que vamos a utilizar la base de datos MySQL. En local podríamos disponer de una base de datos Access, SQL Server o de otro sistema de base de datos.

El proceso de la migración puede ser bastante complejo y, como hay tantas bases de datos distintas, difícil de dar una receta que funcione en todos los casos. Además, aparte de la dificultad de transferir la información entre los dos sistemas gestores de base de datos, también nos influirá mucho en la complejidad del problema el tipo de los datos de las tablas que estamos utilizando. Por ejemplo, las fechas, los campos numéricos con decimales o los boleanos pueden dar problemas al pasar de un sistema a otro porque pueden almacenarse de maneras distintas o, en el caso de los números, con una precisión distinta.

Recomendaciones para migrar de Access a MySQL

Si nuestra base de datos anterior estaba construida en Access lo tenemos bastante fácil, gracias a que MySQL dispone de un driver ODBC para sistemas Windows, que nos permite conectar Access con el propio MySQL y pasar información fácilmente.

Este tema está relatado en el artículo Exportar datos de MySQL a Access, aunque hay que indicar que si deseamos hacer una exportación desde Access en local a MySQL en remoto puede haber problemas porque no todos los alojadores permiten las conexiones en remoto con la base de datos. Si no tenemos disponible una conexión en remoto con nuestro servidor de bases de datos vamos a tener que cambiar la estrategia un poco.

La idea en este último caso es instalar MySQL en local y realizar la migración desde Access en local a MySQL en local y luego podríamos hacer un backup de la base de datos local y subirla a remoto, tal y como se ha relatado antes.

Recomendaciones para migrar desde SQL Server a MySQL

La verdad es que no he tenido este caso nunca, pero hay que decir que Access también nos puede ayudar en este caso. Access permite seleccionar una base de datos SQL Server y trabajar desde la propia interfaz de Access. La idea es que Access también permite trabajar con MySQL y posiblemente haciendo un puente entre estos dos sistemas gestores podemos exportar datos de SQL Server a MySQL.

Lo que es seguro que utilizando el propio Access de puente podríamos realizar el trabajo. Primero exportando de SQL Server a Acess y luego desde Access a MySQL.

Otras bases de datos u otras técnicas

Si la base de datos origen dispone de un driver ODBC no habrá (en teoría) problema para conectarla con Access, de manera similar a como se conecta con MySQL. Entonces podríamos utilizar Access para exportar los datos, porque desde allí se podrían acceder a los dos sistemas gestores de bases de datos.

Si no tenemos Access, o la base de datos original no tiene driver ODBC, o bien no nos funciona correctamente el proceso y no sabemos cómo arreglarlo, otra posibilidad es exportar los datos a ficheros de texto, separados por comas o algo parecido. Muchas bases de datos tienen herramientas para exportar los datos de las tablas a ficheros de texto, los cuales se pueden luego introducir en nuestro sistema gestor destino (MySQL) con la ayuda de alguna herramienta como PhpMyAdmin.

Para ello, en la página de propiedades de la tabla encontraremos una opción para hacer el backup de la tabla y para introducir ficheros de texto dentro de una tabla (Insert textfiles into table en inglés).

enlace para acceder al menú de inserción de archivos de texto

Accediendo a ese enlace podremos ver un formulario donde introducir las características del fichero de texto, como el carácter utilizado como separador de campos, o el terminador de líneas, etc, junto con el propio archivo con los datos, y PhpMyAdmin se encargará de todo el trabajo de incluir esos datos en la tabla.

menú de inserción de archivos de texto

Como se habrá supuesto, es necesario tener creada la tabla en remoto para que podamos introducirle los datos del fichero de texto.

Cambios de un formato de datos a otro

Toda la migración tiene que tener en cuenta muy especialmente, como ya se señaló, las maneras que tenga cada base de datos de guardar la información, es decir, del formato de sus tipos de datos. Tenemos que contar siempre con la posible necesidad de transformar algunos datos como pueden ser los campos boleanos, fechas, campos memo (texto con longitud indeterminada), etc, que pueden almacenarse de maneras distintas en cada uno de los sistemas gestores, origen y destino.

En algunos casos posiblemente tengamos que realizar algún script que realice los cambios necesarios en los datos. Por ejemplo puede ser para localizar los valores boleanos guardados como true / false a valores enteros 0 / 1, que es como se guarda en MySQL. También las fechas pueden sufrir cambios de formato, mientras que en Access aparecen en castellano (dd/mm/aaaa) en MySQL aparecen en el formato aaaa-mm-dd. PHP puede ayudarnos en la tarea de hacer este script, también Visual Basic Script para Access puede hacer estas tareas complejas y el propio lenguaje SQL, a base de sentencias dirigidas contra la base de datos, puede servir para algunas acciones sencillas.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Comentarios

rann

22/3/2004
Muy buen manual para principiantes, los felicito. Gracias por su ayuda desinterezada. Nos ayudan mucho a los que no podemos acceder a comprar manuales, porque vivimos en el 3er mundo.

gracias...totales.

heber

04/9/2004
Importar datos funciona correcto, pero ultimamente no esta funcionando al importar archivos csv

Alejandro

02/5/2005
Si quieres migrar desde SQL Server a MySQL solo es necesario que tengas instalado el ODBC de MySQL en tu maquina. Ya con eso vas a los task de Exportar y seleccionas exportar a un ODBC como lo haces en Access

Jose Antonio Nóbile

05/2/2006
Yo tengo esta siuación.
Una base de datos en mi computador en acces y necesito pasarla a una base de datos mysql remota, el servidor de base de datos es Lynux, por lo tanto no hay controladores ODBC, en ese caso que debería hacer.
Gracias

dartakan

16/2/2006
Buenas, pues tengo una duda que me estoy volviendo loco.
Tengo creada una base de datos en un fihero txt, y lo quiero transoformar a una base de datos mysql.
No se que gestor utilizar, de los que he visto, no me vallen por que tengo el win 98.
una ayuda please??

Gustavo Simoniello

25/4/2006
Tengo el siguiente problema:

Cuando realizo el backup de una base de datos MySQL las sentencias de creación de las tablas se generan en órden alfabético.
Como tengo relaciones foraneas entre tablas al restituir el backup se generan problemas ya que esta restitución debería respetar cierto orden.

Para solucionar esto encontré dos soluciones posibles:

1) Editar el script y reordenar manualmente las sentencias. (Esto se hace tedioso sobre todo si es una tarea que deba realizarse periodicamente)

2) Al nombre de cada tabla anteponer un número de orden p.ej: 01clientes, 02productos, 03... etc.

Quería saber si hay alguna manera más elegante de realizar esta tarea.

José Neira

22/5/2006
Cómo puedo enlazar una base de datos NEXUS a MYSQL y viceversa? alguien sabe como hacerlo?

Gracias

orlam

19/11/2007
mm hola kisiera saber como se migra una base de datos de acces a mysql. es urgente por favor

laidy

13/7/2009
necesito ayuda urgente
como hago si realice la base de dato en phpmyadmin como hago para que me aparezca la bd en sql para un sistema las hao tambien en acces

Compartir