Generalidades
Este artículo explica cómo respaldar tu base de datos a través de SSH.
Antes de continuar, asegúrate de haber completado lo siguiente.
Encontrar las credenciales de tu base de datos: Para crear una copia de seguridad de tu base de datos, necesitarás las credenciales de la misma, como usuario, contraseña, hostname y nombre de la base de datos. Revisa este artículo para obtener instrucciones sobre cómo encontrar esta información.
Configurar SSH: Asegúrate de haber creado un usuario de Shell y de poder iniciar sesión en tu servidor a través de SSH. Esto es necesario para correr los comandos de este artículo.
Respaldar una sola base de datos
Respaldarla corriendo un comando
El siguiente comando respalda una sola base de datos bajo tu usuario.
- Inicia sesión a través de SSH.
- Navega al directorio principal del usuario.
[server]$ cd ~
- Corre el siguiente comando para respaldar tu base de datos en el directorio actual.
Anota los siguientes ajustes ha hacer:
- Asegurate de cambiar el usuario, hostname, y basededatos a tus credenciales.
- Puedes usar cualquier nombre para nombredeturespaldo.sql – solo asegúrate de que termine en .sql.
- --no-tablespaces se usa para excluir las declaracionesen del resultado.
[server]$ mysqldump --opt --user=usuario -p --host=hostname --no-tablespaces basededatos > nombredeturespaldo.sql
- Cuando se te pida, ingrese la contraseña de usuario de la base de datos.
Por favor ten en cuenta lo siguiente al correr este comando:
- El comando no proporciona ningún resultado, por lo que debes asegurarte de no cancelarlo.
- Si el servidor no responde, puedes asumir que el comando continúa con la copia de seguridad.
- En el caso de bases de datos grandes, un respaldo puede tardar varios minutos en completarse.
Ahora puedes utilizar este artículo de FTP para obtener instrucciones sobre cómo iniciar sesión en tu servidor y descargar el archivo de la base de datos.
Respaldarlo a través de un cron job
Si desea realizar una copia de seguridad de tu base de datos usando un cron job, deberás especificar la contraseña. Por ejemplo:
[server]$ mysqldump --opt --user=usuario --password='contraseña' --host=hostname --no-tablespaces basededatos > nombredeturespaldo.sql
Asegúratee de agregar comillas simples antes y después de tu contraseña para garantizar que el comando la lea correctamente.
Respaldar TODAS las bases de datos
El siguiente script realiza una copia de seguridad de todas las bases de datos bajo un solo nombre de usuario.
- Inicia sesión en tu servidor a través de SSH y navega hasta el directorio principal del usuario.
- Crea un archivo y nómbralo algo como bd-exportada.sh.
- Agrégale el siguiente código.
Asegúrate de cambiar el hostname, usuario, y contraseña a tus credentiales.
#!/bin/sh host="hostname" username="usuario" password="contraseña" for DB in $(mysql --host="$host" --user="$usuario" -p"$contraseña" -e"show databases" --skip-column-names -s | grep -v information_schema); do mysqldump --opt --host="$host" --user="$usuario" -p"$contraseña" --no-tablespaces $DB > ./$DB.sql; done
- Corre el archivo:
[server]$ sh db-export.sh
Luego, todas las bases de datos bajo este nombre de usuario se descargan en tu directorio actual.