Respaldar y restaurar Bases de Datos MySQL/MariaDB desde la línea de comandos.

MySQL logo
MariaDB y MySQL Línea de Comandos

¿Cómo respaldar o restaurar bases de datos grandes de forma segura?

La forma más rápida y segura de respaldar Bases de Datos grandes sin que se corrompan, sin pérdida de datos, sin errores de formato y sin afectar el rendimiento del servidor, es desde la línea de comandos. Funciona en Servidores MySQL y MariaDB y está disponible en TODOS los Sistemas Operativos, incluso en dispositivos móviles como Android.

¿Qué necesito para respaldar o restaurar bases de datos desde la línea de comandos?

  1. Tener acceso a una consola de comandos, si vas a respaldar o restaurar una base de datos ubicada en un servidor o VPS remoto, lo ideal es a través de una Conexión SSH.
  2. Los datos de acceso a la base de datos, en este caso el usuario y la contraseña de dicha base de datos.
  3. Para hacer un respaldo, utilizar el comando mysqldump; y para restaurar una base de datos, el comando mysql.

¿Qué cliente SSH utilizar para conectar a un servidor SSH?:

  • Windows 10, Windows 11, Linux y Mac incluyen un cliente SSH preinstalado ( comando ssh ), para otras versiones de Windows recomiendo utilizar PuTTY, un cliente SSH excelente que no requiere instalación: descargar putty.
  • Si estás en Android, te recomiendo utilizar la aplicación ConnectBot, está disponible en Google Play.

Pasos para respaldar bases de datos desde la línea de comandos:

  1. Si se trata de un servidor o VPS remoto, conéctate vía SSH (en google encontrarás tutoriales sobre cómo establecer una conexión ssh con PuTTY o con el comando ssh).
  2. Crea un direcorio para guardar el respaldo, asegúrate que el directorio no sea público, es decir que no se pueda acceder a él desde una url, y en la terminal ejecuta los siguientes comandos:
    mkdir respaldo
    cd respaldo
  3. A continuación, respalda y comprime la base de datos con los comandos:
    mysqldump -u usuario_basedatos -ppassword nombre_basedatos > respaldo.sql
    gzip -9 respaldo.sql

Importante: En el paso 3 el «-ppassword» va JUNTO, es decir, que la contraseña de la Base de Datos debe ir pegada a la instrucción -p, si la contraseña contiene caracteres especiales la encierras entre comillas dobles: -p"contraseña".

Simple y rápido, el proceso llevará desde unos segundos hasta un par de minutos dependiendo del tamaño de tu base de datos. Ahora que tienes la Base de Datos respaldada y comprimida con GZIP (se puede abrir con 7zip, WinRAR, etc), si está en tu servidor la puedes descargar a tu dispositivo por FTP o puedes copiar el archivo «respaldo.sql.gz» a una ruta pública para descargarla desde el navegador, por seguridad, elimina el archivo de la carpeta pública una vez que la hayas descargado.

Restaurar una base de datos desde la línea de comandos:

  1. Ubica tu archivo de respaldo, es posible que debas subirlo a tu servidor por FTP y después conectarte por SSH.
  2. En la consola de comandos ejecuta:
    gzip -d respaldo.sql.gz
    mysql -u usuario_db -ppassword -h localhost -D nombre_db < respaldo.sql

Nota: De ser necesario, cambia localhost por el Host o IP de tu Servidor MySQL o MariaDB.

Espero que el tutorial sea de utilizad, DaxMX.

7 comentarios
  1. Pasos simples, pero me da error 😔

    Dejo el mensaje de error para ver si me puedes ayudar:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysqldump -u root -p"BdDALO2007" joo_polyasfalt > /home/plopez/Datos-BD/pruebare’ at line 1

    • Pablo:

      Según veo es posible que hayas insertado algún caracter no válido en el nombre del archivo de respaldo, asegúrate que el nombre no lleve espacio, de ser así encierra entre comillas dobles, por ejemplo:
      mysqldump -u root -ppass base_datos > "/home/user/Datos-BD/archivo con espacios.sql"

      Tambien prueba quitanto las comillas dobles de la contraseña, un saludo.

  2. francisco

    Que util es este sitio con tutoriales, te lo agradezco.

  3. tutorial

    Acá está otro tutorial mysql manual pdf

    Adios.

  4. Gracias Marie, lo escencial nada más… Saludos 🙂

  5. Marie

    Usted es una persona muy inteligente!

  6. slider0

    Ta bueno muy util. :d 🙂

    Saludoss..