Backup y restore de una base de datos en MySQL
Esto es algo útil y simple. Antes yo hacia mis backups desde phpMyAdmin y estaba bien para una base de datos pequeña (<10MB) pero conforme fue creciendo la probabilidad de encontrarme con inconsistencias si tuviera que usar este archivo también aumentaba por que podrían hacerse cambios en la BD durante la creación del backup que ahora demoraba mas en crearse.
La solución es simple siempre que tengas acceso a la linea de comandos de tu servidor (en este caso: uno Linux). El tiempo de generar el backup y el restaurarlo se reduce drásticamente.
Hay dos comandos que yo uso para salvar mi data y son los siguientes:
Backup
Para el siguiente ejemplo el nombre (o dirección IP) del servidor web es localhost, el usuario es root, mydb es el nombre de la base de datos y archivobackup.sql el nombre que tendrá nuestro backup.
1 2 |
mysqldump --host=localhost --user=root --pass=123456 mydb > archivobackup.sql mysqldump -h localhost -u root -p mydb > archivobackup.sql |
En la primera forma la clave es definida al inicio por lo que no se pedirá ingresar la clave de la base de datos luego. La segunda pregunta la clave antes de empezar. El resultado es el mismo.
Restore
1 |
mysql -u root -p mydb < archivobackup.sql |
Esta sentencia requiere de la clave del usuario root (que tenga acceso a la BD mydb) y que la base de datos mydb ya exista y que este vacía.