martes 25 de noviembre de 2008

Importar/Exportar BD mysql

Normalmente uso phpMyAdmin para trabajar con bases de datos Mysql, entre otras cosas porque me resulta muy cómodo y porque al ser una aplicación php, puedo ejecutarla desde cualquier parte de la red, tan sólo con tener instalado un navegador web.

Lo que sucede es que, a veces hay que recurrir a la consola. Por ejemplo, en casos como éste: phpMyAdmin te permite importar ficheros de 2Mb.
Hoy tenía que migrar un portal de un servidor web a otro. Así que, empezando por la BD, tenía que exportarla en el servidor donde estaba para luego, importarla en el nuevo servidor.
Como la BD a importar tenía unos 37 Mb, no he podido usar la aplicación para importarla.

Para exportar ficheros usando phpMyAdmin, no hay problema, ya que no hay límite.

Como la próxima vez que tenga que hacerlo, seguro que no me acuerdo, y, por si a alguien más le sirve, pongo aquí los pasos:


Para exportar la BD en el servidor origen:

# mysqldump -u usuario -p nombre_base_de_datos > archivo.sql

Ejemplo:
# mysqldump -u root -p xoops > dbxoops.sql

Una vez hecho ésto, ya tengo un fichero (dbxoops.sql) con las sentencias sql que crean las tablas de la BD e insertan los datos en las mismas.
Como el archivo obtenido, tiene más de 2Mb, no puedo importarlo usando phpMyAdmin, así que lo cojo y me lo llevo al servidor destino.


Para importar la BD en el servidor mysql destino.

1) He creado la BD (xoops) usando el interfaz de phpMyAdmin (como decía antes, es más cómodo), pero al que le guste, también puede hacerlo mediante consola.

2) Una vez creada la BD, ejecuto la sentencia para importar la estructura y los datos:

# mysql -u root -p nombre_base_de_datos < archivo.sql

Ejemplo:
# mysql -u root -p xoops < xoops.sql

Y ya está. El siguiente paso para terminar de migrar el portal, será copiar todo el directorio donde se almacena el portal a la máquina destino y cambiar los valores particulares del nuevo servidor. Pero eso ya es otro tema.