MySQLdump y su poder ¿Qué es y cómo usarlo?
¿Cómo saber si lo tengo instalado?
El comando mysqldump se incluye dentro de las utilidades de MySQL, así que lo tendrás instalado en el caso de estar utilizando como servidor de base de datos MySQL o en su defecto, MariaDB (que esta es un fork de MySQL). Para saber exactamente que puedes utilizar esta herramienta, tendrás que abrir la terminal de comandos y escribir:
mysqldump
Si todo va bien, que tienes la herramienta mysqldump instalada, aparecerán unas opciones que podremos utilizar para realizar copias de nuestras bases de datos entre otras cosas, pero sigue atento porque a continuación, vamos a darte las claves que más caracteriza a este comando.
¿Para qué sirve?
El comando mysqldump se usa principalmente para hacer copias de seguridad de bases de datos de MySQL. Cuando se ejecuta crea un archivo SQL que contiene todas las instrucciones necesarias para recrear la base de datos, incluyendo tanto la estructura de las tablas como sus datos.
Cómo hacer backup con mysqldump
Para realizar un backup de nuestra base de datos, tenemos que indicar los detalles de la base de datos que queremos dumpear, que es lo mismo que hacer un backup. Tenemos que tener en cuenta estos tres detalles de la base de datos:
- Nombre de la base de datos
- Usuario de la base de datos
- Contraseña de la base de datos
Conociendo estos tres datos importantes, podremos hacer el backup o dicho de otra forma, podremos dumpear la base de datos de la siguiente forma:
mysqldump --user=USUARIO_BASE_DATOS --password=PASSWORD_BASE_DATOS NOMBRE_BASE_DATOS > nombredelacopiadeseguridad.sql
Escribiendo este comando, observamos que en una sola línea con los datos requeridos que habíamos dicho antes, solo sustituye correctamente los parámetros que correspondan con la base de datos que se quiere dumpear.
Un detalle importante, que no debe pasar desapercibido, es que este comando puede dejar en el historial datos sensibles como la contraseña, para evitar esto, es posible dejar la contraseña en blanco y ejecutar el comando. Una vez pulsamos enter, nos solicitará el backup que podremos introducir, cuando termine, volvemos a pulsar enter, y ahora sí se creará el backup.
¿Cómo hacer que nos pida la contraseña si la base de datos está protegida?
Como hemos comentado, si la ponemos directamente en el comando anterior, dejaremos rastro de datos sensibles que para nada nos interesa. La otra forma de dumpear sin dejar rastros importantes, es escribiendo el siguiente comando:
mysqldump --user=USUARIO_BASE_DATOS -p NOMBRE_BASE_DATOS > nombredelacopiadeseguridad.sql
Si observas, ya no tenemos ningún texto a sustituir, que ponga contraseña o password, solo aparece la opción «-p». Este modo hace, que cuando escribamos este comando y pulsamos enter par ejecutarlo, entonces es cuando nos pedirá la contraseña de la base de datos a la que queremos crear el backup.
Lo importante de este comando, es no dejar rastro de datos sensibles y aumentar la seguridad, que podría ocasionar problemas en el caso de que algún delincuente informático, quisiera atacar el sitio.
Reemplazar otros parámetros
Es posible reemplazar también el nombre de usuario, en vez de poner «-user=» tendríamos que escribir «-u», seguido del nombre de usuario de la base de datos, pero el comando se hace más corto a escribir, incluso más fácil a recordar, quedaría de esta forma:
mysqldump -ugestiondatos -p datosprograma > nombredelacopiadeseguridad.sql
Y en cuando pulsemos para ejecutarlo, el siguiente paso será pedirnos la contraseña:
mysqldump -ugestiondatos -p datosprograma > nombredelacopiadeseguridad.sql
Enter Password:
Una vez introducida la contraseña, pasará a proceso de crear la copia de seguridad.
A tener en cuenta, que nos situamos en el directorio donde queremos guardarlo, debemos asegurarnos que tiene el suficiente espacio para almacenar la copia de seguridad, sobre todo, si es de gran tamaño. Pondremos el nombre que queramos que reciba donde dice «nombredelacopiadeseguridad», la extensión del archivo será».sql» y se creará el archivo, el directorio que nos situamos.
En caso de querer guardarla en otra carpeta, donde no estemos situados en ese momento, hay que recordar, que deberás escribir la ruta absoluta o relativa, sin equivocarte, finalizando con el nombre que deseas, que reciba el archivo de la copia de seguridad de la base de datos.
Por ejemplo, si actualmente nos situamos en la carpeta «Acceso público», y queremos guardarla en «backup», debemos saber la ruta que llega hasta ella, ya sea relativa o absoluta:
Ruta Absoluta:
mysqldump -ugestiondatos -p datosprograma > C:\backup
Ruta Relativa:
mysqldump -ugestiondatos -p datosprograma > ..\..\backup\nombredelacopiadeseguridad.sql
Siempre teniendo en cuenta la sintaxis al escribir comandos y rutas en cada sistema operativo, que en el caso del ejemplo, es en Windows.
Backup de todas las bases de datos
Muchas veces, nos encontraremos en la situación de querer guardar una copia de seguridad de todas las bases de datos que tenemos en el servidor, en vez de querer dumpear solo una.
Para realizarlo solo tenemos que cambiar algunas opciones del comando mysqldump, en vez de usar el nombre de una base de datos en concreto pondremos «-all-databases».
Aquí hay que tener en cuenta algo tan importante como los permisos, ya que tendrás que utilizar el nombre de un usuario que tenga permisos para dumpear todas las bases de datos. Normalmente, el usuario «root» es el que suele tener todos los permisos como en paneles de cPanel, o el usuario «admin«, en caso de Plesk. Y el comando quedaría tal que así:
mysqldump --uadmin -p --all-databases > nombredelacopiadeseguridad.sql
Recuperar backup realizado con mysqldump
Si queremos recuperar un backyp realizado con el comando mysqldump, recurriremos a mysql. Es decir, para recuperar un dumpeo realizado con el comando «mysqldump», vamos a hacer justo lo contrario, utilizando el comando «mysql».
Lo haremos con el ejemplo de dumpeo anterior con la base de datos llamada «datosprograma» en «nombredelacopiadeseguridad.sql».
mysql -ugestiondatos -p datosprograma < nombredelacopiadeseguridad.sql
¿Qué ha cambiado con respecto al comando que realiza el backup?
Observamos dos elementos destacables, empezando por «mysql» que ya no es «mysqldump» y que el operador de redirección ha cambiado, en vez de ser de salida «>» está en posición de redirección de entrada «<«, permitiendo así restaurar la base de datos.
A destacar de las otras opciones, sirven completamente todas las mismas que utilizamos para crear el backup o hacer el dumpeo. Aquí también tendremos en cuenta de nuevo la seguridad que siempre prima al respecto. Siempre es recomendable al cien por cien, poner la opción «-p» en vez de «-password=«, para que no deje rastros de datos sensibles, como ya comentamos anteriormente, pero no está nunca de más, volverlo a recalcar. Como también usar «-u» en vez de «–user» para el nombre del usuario, en este caso porque nos apetezca escribir menos u elegir lo que más nos guste o recordemos.
En este caso, incluso, el comando podría llegar a ser más simple y corto, porque podríamos evitar poner el nombre de la base de datos, ya que el archivo dumpeado, lleva toda la información, pero son datos, que nunca estarán de más, indicarlos, ya que al ejecutar el comando, borrará todo lo que contenga la base de datos original, y lo reemplazará por todo lo que contenga el archivo dumpeado.
También es posible, importar el archivo dumpeado a una nueva base de datos, como para realizar pruebas o en un entorno de desarrollo.
Sabemos que estas acciones no siempre son fáciles a realizar o simplemente no todas las personas, nos vemos capaces de realizar estas acciones, pero tenemos la solución para ti. Desde NebulaCloud, podrás obtener Servidores Dedicados Administrados por nuestro equipo de SysAdmin, ellos se comprometen para realizar todas esas tareas que a otros nos resultan imposibles de realizar sin que nos tiemble el pulso.
Como siempre, esperamos que esta entrada te haya sido de gran ayuda o de nuevos aprendizajes. No dudes en escribirnos si tienes alguna duda sobre lo que acabas de leer y dejárnoslo en comentarios, ¡estamos dispuestos a ayudarte!
¡Descubre nuestros Servidores Dedicados Administrados que incluyen SysAdmin!