MySQL: subir y bajar backups, hacer dumps de base, y restaurar (inyectar) - perfeccion-ar/infraestructura-clasica-y-avanzada GitHub Wiki

Resumen de clase 2/4/2024

Temario:

  • Generar backups, bajarlo al equipo local.
  • E inversamente, subir un backup, y reinyectarlo

A continuación vemos el método de backup y restauración de bases por consola.

Este método es alternativo a hacerlo con phpMyAdmin, el cual instalamos en la clase de Wordpress.

La ventaja de hacerlo por consola, es que podemos bajar y subir backups mucho mas grandes de lo que normalmente podemos hacer con phpMyAdmin, el cual está limitado por tiempos de sesión y de tamaño. Ademas nos vemos más viriles y atractivos en las entrevistas de trabajo 😎

Ejemplo de generar un backup

  1. Entramos al container, con

    ssh -p <puerto> [email protected]

  2. Estando parados en el container, hacemos backup a la base agenda

    mysqldump -u root -p'Pepelepu1.' agenda > /root/agenda-backup.sql

  3. Luego volvemos a nuestro equipo local, y nos bajamos el backup. Cuidado el punto al final.

    scp -P <puerto> [email protected]:/root/agenda-backup.sql .

Para mas información sobre subir y bajar archivos a los containers LXD del servidor, haga click aquí.

Ejemplo de restaurar un backup

  1. Examinamos la cabecera del backup: a veces ya existen órdenes como CREATE DATABASE, a veces no. Chequee también instrucciones DROP TABLE o DROP DATABASE.

Por ejemplo, si la base no existe, debemos entrar al motor y crear la base con CREATE DATABASE nombre-base, como ya hicimos en el artículo sobre Wordpress.

  1. Chequeado el archivo de backup, en nuestra maquina local o donde tenemos los backups, lo subimos al servidor con FtpZilla o con scp:

    scp -P <puerto> agenda-backup.sql [email protected]:/root/

  2. Entramos al container con

    ssh -p <puerto> [email protected]

  3. Restauramos el backup con

    mysql -u root -p'Pepelepu1.' agenda < agenda-backup.sql

  4. Entramos al motor y nos aseguramos que todo se encuentre bien.

mysql -u root -p'Pepelepu1.'

USE agenda;

SHOW TABLES;

¿No hay algún método mas fácil?

Si, podría usar DBVeaver, una interface muy linda y fácil de usar desde su computadora. Pero en nuestro contexto, en el cual su base se encuentra adentro de un container LXD, deberá hacer un túnel. Siga el siguiente link sobre túneles.

⚠️ **GitHub.com Fallback** ⚠️