Volcado de seguridad en MySQL con mysqldump

De ChuWiki
Saltar a: navegación, buscar

mysqldump

Hay muchas formas de hacer un volcado de seguridad en MySQL, pero la primera que he encontrado y que es la que utilizo es usando el comando mysqldump: Desde una ventana de ms-dos y teniendo en el PATH de búsqueda de ejecutables el directorio de MySQL es decir en la carpeta donde tenemos instalados los binarios de MySQL por ejemplo: c:\mysql\bin (esta ruta depende de dónde instalaste MYSQL), Usuarios Vista y windows 7 ejecutar el el simbolo de sistema como administrador, de lo contrario les dira que el acceso es denegado.

C:\> mysqldump -ppassword -u root nombreBD > fichero.sql

Es importante poner la password sin separación de la -p, pero sí hay que poner un espacio entre -u y el nombre de usuario (root en este caso).

nombreBD es el nombre de la base de datos de la que queremos hacer backup.

fichero.sql es el nombre del fichero donde queremos guardar el volcado de los datos.

En mi caso, he metido todo esto en un .bat, generando un nombre de fichero con la fecha/hora del día. He metido el .bat en el programador de tareas de windows, de forma que se ejecute todos los días a una hora concreta.

Mi fichero .bat se asemeja a esto

set FECHA= %date%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=%
set BUG=backup_bugs_%FECHA%.sql
mysqldump -p''password'' -u root bug > %BUG%

El nombre de la base de datos que quiero salvar es BUG (correspondiente a la base de datos de bugzilla que me he instalado.

Todo el rollo de set FECHA que aparece al principio es para obtener la fecha y quitarle las /, los espacios, dos puntos y comas entre dia, mes y año, de forma que el nombre de fichero que se obtiene al final se parece a este

backup_bugs_vie15092006.sql

correspondiente al viernes, 15 de Septiembre de 2006.

En cuanto a ponerlo en el programador de tareas de windows es fácil (windows 2000).

  • "Incio", "Configuración", "Panel de control". Se abre una ventana.
  • "Tareas programas". Se abre otra ventana
  • "Agregar tarea programada". Se abre otra ventana (creo que ya sé porqué el sistema operativo se llama "windows").
  • "Siguiente", "Examinar" y buscamos nuestro bat
  • Ya es cuestión de ir eligiendo cada cuánto queremos que se ejecute, a qué horas, etc.

Recuperar los datos desde cliente MySQL

Antes de nada, que quede claro que esto no lo he probado. Estos son los pasos que creo que hay que dar.

Tal cual hemos creado nuestro fichero de seguridad, para poder recuperarlo debemos hacer lo siguiente:

  • Entrar con un cliente de mysql con un usuario con privilegios suficientes. Para ello podemos, desde windows, hacerlo desde el menú de "inicio", "programas", "MySQL", "MySQL Server xxx", "MySQL command line client". Metemos el password de root.
  • Crear si no la hay y meterse en la base de datos que queremos recuperar:
mysql> create database nombreBD;     
mysql> use nombreBD;
  • Ejecutar el script
mysql> source /path/fichero.sql

Restaurar la Base de Datos desde línea de comandos

  • Si la base de datos no existe ejecutar este comando desde el directorio /bin donde se instaló MySQL:
mysqladmin -u usuario -ppassword CREATE nombreBD
  • Una vez creada la base de datos, se debe ejecutar el siguiente comando, también desde el directorio /bin de MySQL:
mysql -u usuario -ppassword nombreBD<nombrearchivo.sql