mysql_logo

Hace solo algunas semanas mientras terminabamos un proyecto para la escuela, surgio un pequeño inconveniente mientras nos poniamos de acuerdo al trabajar en equipo con la base de datos, cuando unos pensaban que ya estaba lista mientras todos la programabamos al mismo tiempo (con fines didacticos), no faltaba que se me ocurria una u otra cosa y la modificaba, y luego teniamos que verificar cuales habian sido los cambios y cada quien cambiarlos en sus maquinas, precisamente lo hicimos de esta manera por que algunos de los que formaban parte de nuestro equipo no sabian como programar bien una base de datos, pero bueno, el inconveniente estuvo a la hora de que la base de datos ya se encontraba llena, y bueno, no queriamos ponernos cada quien a llenarla cuando eran los mismos datos, asi que procedimos a hacer un «respaldo» de la  base de datos copiando los archivos de la carpeta de la base de datos a una memoria, lamentablemente esto no funciono, desconcertados por esto, ya que anteriormente lo habiamos podido hacer asi, investigamos un poco; resulta que cuando la base de datos se crea en MyISAM no hay ningun problema al copiar la base de datos por que mysql se encarga de resolver confligtos, pero ya que nuestras bases estaban en INODB el procedimiento era otro, aplicable a cualquier tipo de base de datos, lo que me parecio excelente, bien, hacerlo es muy sencillo:

Primero que nada haremos un respaldo de la base de datos pasandolo a un archivo comprimido en gz, para esto utilizaremos mysqldump y lo pasaremos como parametro a gzip para que lo comprima, de la siguiente manera:

mysqldump -p -u user --quick nombre_base_datos | gzip > archivo.gz

(Sustituyen use por su usuario y nombre_base_datos por el nombre de la base de datos)

Y listo, con eso mysqldump nos generara un archivo gz donde contendra todo lo necesario para crear la base de datos, esto se hizo en la maquina con la base de datos, la maquina origen, ahora bien, para integrar el respaldo a la maquina destino sera necesario primero hacer uso de mysqladmin para crear la base de datos, esto lo haremos de la siguiente manera:

mysqladmin -p -u user create nueva_base_datos

Y ahora procedemos a extraer y generar la base de datos con gunzip y mysql:

gunzip < archivo.gz | mysql -p -u user nueva_base_datos

Y listo, todo solucionado, respaldada de la maquina origen e integrada a la maquina destino, asi de sencillo.