Copia de seguridad y recuperación de MySQL

MySQLMySQLBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo realizar copias de seguridad y restaurar bases de datos MySQL utilizando la herramienta de línea de comandos mysqldump. El laboratorio cubre técnicas esenciales para crear copias de seguridad lógicas y restaurarlas para garantizar la integridad y disponibilidad de los datos.

El laboratorio lo guía a través del proceso de exportación de una base de datos, incluyendo la creación de una base de datos y una tabla de muestra, y luego la realización de una copia de seguridad utilizando mysqldump. También aprenderá cómo realizar una copia de seguridad de una sola tabla, restaurar una base de datos a partir de un archivo de volcado y, finalmente, verificar la precisión de los datos restaurados para comprobar el éxito del proceso de restauración.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/SystemManagementToolsGroup(["System Management Tools"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_database("Database Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/drop_database("Database Deletion") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_table("Table Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/insert("Data Insertion") mysql/SystemManagementToolsGroup -.-> mysql/mysqldump("Data Export Utility") subgraph Lab Skills mysql/use_database -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} mysql/create_database -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} mysql/drop_database -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} mysql/create_table -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} mysql/select -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} mysql/insert -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} mysql/mysqldump -.-> lab-550902{{"Copia de seguridad y recuperación de MySQL"}} end

Exportar una base de datos con mysqldump

En este paso, aprenderá cómo exportar una base de datos utilizando la herramienta de línea de comandos mysqldump. mysqldump es una utilidad que le permite crear una copia de seguridad lógica de su base de datos MySQL. Esta copia de seguridad luego se puede utilizar para restaurar la base de datos a su estado original o para migrarla a un servidor diferente.

Antes de comenzar, creemos una base de datos y una tabla de muestra con las que trabajar. Abra su terminal y ejecute los siguientes comandos para conectarse al servidor MySQL como usuario root. Es posible que se le solicite la contraseña de root, que por lo general está vacía por defecto en un entorno de desarrollo.

mysql -u root -p

Ahora, cree una base de datos llamada mydatabase:

CREATE DATABASE mydatabase;

A continuación, cambie a la base de datos mydatabase:

USE mydatabase;

Cree una tabla simple llamada users:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE
);

Inserta algunos datos de muestra en la tabla users:

INSERT INTO users (name, email) VALUES
('John Doe', '[email protected]'),
('Jane Smith', '[email protected]');

Salga de la shell de MySQL:

exit

Ahora que tenemos una base de datos con algunos datos, exportémosla utilizando mysqldump. La sintaxis básica para exportar una base de datos es:

mysqldump -u [username] -p[password] [database_name] > [output_file.sql]

Reemplace [username] con su nombre de usuario de MySQL (por lo general root), [password] con su contraseña de MySQL (si tiene alguna), [database_name] con el nombre de la base de datos que desea exportar (mydatabase) y [output_file.sql] con el nombre del archivo donde desea guardar la copia de seguridad (por ejemplo, mydatabase_backup.sql).

En nuestro caso, el comando sería:

mysqldump -u root -p mydatabase > ~/project/mydatabase_backup.sql

Se le solicitará la contraseña de root de MySQL. Ingrese la contraseña (si tiene alguna).

Este comando creará un archivo llamado mydatabase_backup.sql en su directorio ~/project, que contiene las declaraciones SQL necesarias para recrear la base de datos mydatabase y su contenido.

Puede verificar que se haya creado el archivo listando el contenido de su directorio ~/project:

ls ~/project

Debería ver mydatabase_backup.sql en la salida.

También puede ver el contenido del archivo de copia de seguridad utilizando nano:

nano ~/project/mydatabase_backup.sql

Esto le mostrará las declaraciones SQL que generó mysqldump. Presione Ctrl+X para salir de nano.

Realizar una copia de seguridad de una sola tabla

En este paso, aprenderá cómo realizar una copia de seguridad de una sola tabla de una base de datos MySQL utilizando el comando mysqldump. Esto es útil cuando solo necesita realizar una copia de seguridad de una tabla específica y no de toda la base de datos.

Seguiremos utilizando la base de datos mydatabase y la tabla users que creamos en el paso anterior.

Para realizar una copia de seguridad de una sola tabla, se utiliza el mismo comando mysqldump, pero se especifica el nombre de la tabla después del nombre de la base de datos:

mysqldump -u [username] -p[password] [database_name] [table_name] > [output_file.sql]

Reemplace [username] con su nombre de usuario de MySQL (por lo general root), [password] con su contraseña de MySQL (si tiene alguna), [database_name] con el nombre de la base de datos (mydatabase), [table_name] con el nombre de la tabla que desea exportar (users) y [output_file.sql] con el nombre del archivo donde desea guardar la copia de seguridad (por ejemplo, users_backup.sql).

En nuestro caso, el comando sería:

mysqldump -u root -p mydatabase users > ~/project/users_backup.sql

Se le solicitará la contraseña de root de MySQL. Ingrese la contraseña (si tiene alguna).

Este comando creará un archivo llamado users_backup.sql en su directorio ~/project, que contiene las declaraciones SQL necesarias para recrear la tabla users y su contenido.

Puede verificar que se haya creado el archivo listando el contenido de su directorio ~/project:

ls ~/project

Debería ver tanto mydatabase_backup.sql (del paso anterior) como users_backup.sql en la salida.

También puede ver el contenido del archivo de copia de seguridad utilizando nano:

nano ~/project/users_backup.sql

Esto le mostrará las declaraciones SQL que mysqldump generó específicamente para la tabla users. Presione Ctrl+X para salir de nano.

Ahora, agreguemos otra tabla a nuestra base de datos para ilustrar mejor el proceso de copia de seguridad de una sola tabla. Conéctese al servidor MySQL:

mysql -u root -p

Cambie a la base de datos mydatabase:

USE mydatabase;

Cree una nueva tabla llamada products:

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2)
);

Inserta algunos datos de muestra en la tabla products:

INSERT INTO products (name, price) VALUES
('Laptop', 1200.00),
('Mouse', 25.00);

Salga de la shell de MySQL:

exit

Ahora, si solo desea realizar una copia de seguridad de la tabla products, utilizaría el siguiente comando:

mysqldump -u root -p mydatabase products > ~/project/products_backup.sql

Esto creará un archivo llamado products_backup.sql en su directorio ~/project que contiene solo los datos de la tabla products.

Restaurar una base de datos desde un archivo de volcado

En este paso, aprenderá cómo restaurar una base de datos desde un archivo de volcado creado por mysqldump. Este es el proceso de recrear la base de datos y su contenido a partir de las declaraciones SQL almacenadas en el archivo de copia de seguridad.

Primero, eliminemos la base de datos mydatabase para simular un escenario en el que la base de datos necesita ser restaurada. Conéctese al servidor MySQL:

mysql -u root -p

Elimine la base de datos mydatabase:

DROP DATABASE mydatabase;

Salga de la shell de MySQL:

exit

Ahora, restauraremos la base de datos mydatabase desde el archivo mydatabase_backup.sql que creamos en el primer paso. La sintaxis básica para restaurar una base de datos es:

mysql -u [username] -p[password] [database_name] < [input_file.sql]

Reemplace [username] con su nombre de usuario de MySQL (por lo general root), [password] con su contraseña de MySQL (si tiene alguna), [database_name] con el nombre de la base de datos a la que desea restaurar (mydatabase) y [input_file.sql] con el nombre del archivo de copia de seguridad (mydatabase_backup.sql).

Antes de restaurar, necesitamos crear de nuevo la base de datos mydatabase, ya que la acabamos de eliminar. Conéctese al servidor MySQL:

mysql -u root -p

Cree la base de datos mydatabase:

CREATE DATABASE mydatabase;

Salga de la shell de MySQL:

exit

Ahora, restaure la base de datos:

mysql -u root -p mydatabase < ~/project/mydatabase_backup.sql

Se le solicitará la contraseña de root de MySQL. Ingrese la contraseña (si tiene alguna).

Este comando ejecutará las declaraciones SQL en mydatabase_backup.sql y recreará la base de datos mydatabase y sus tablas y datos.

Para verificar que la base de datos se ha restaurado, conéctese al servidor MySQL:

mysql -u root -p

Cambie a la base de datos mydatabase:

USE mydatabase;

Muestre las tablas en la base de datos:

SHOW TABLES;

Debería ver las tablas users y products.

Seleccione todos los datos de la tabla users:

SELECT * FROM users;

Debería ver los datos que insertamos en el primer paso.

Seleccione todos los datos de la tabla products:

SELECT * FROM products;

Debería ver los datos que insertamos en el segundo paso.

Salga de la shell de MySQL:

exit

Ahora ha restaurado con éxito la base de datos mydatabase desde el archivo mydatabase_backup.sql.

Verificar la precisión de los datos restaurados

En este paso, verificará la precisión de los datos restaurados comparándolos con los datos originales. Esto asegura que el proceso de copia de seguridad y restauración fue exitoso y que no se perdieron ni dañaron datos.

Nos conectaremos a la base de datos mydatabase restaurada y consultaremos las tablas users y products para comprobar si los datos coinciden con los que insertamos inicialmente.

Conéctese al servidor MySQL:

mysql -u root -p

Cambie a la base de datos mydatabase:

USE mydatabase;

Seleccione todos los datos de la tabla users:

SELECT * FROM users;

Debería ver la siguiente salida:

+----+----------+-----------------------+
| id | name     | email                 |
+----+----------+-----------------------+
|  1 | John Doe | [email protected]  |
|  2 | Jane Smith | [email protected] |
+----+----------+-----------------------+
2 rows in set (0.00 sec)

Esto confirma que los datos de la tabla users se han restaurado con éxito.

Ahora, seleccione todos los datos de la tabla products:

SELECT * FROM products;

Debería ver la siguiente salida:

+----+---------+---------+
| id | name    | price   |
+----+---------+---------+
|  1 | Laptop  | 1200.00 |
|  2 | Mouse   |   25.00 |
+----+---------+---------+
2 rows in set (0.00 sec)

Esto confirma que los datos de la tabla products también se han restaurado con éxito.

Si la salida coincide con los datos que insertó inicialmente, entonces el proceso de restauración fue exitoso. Si la salida es diferente o si encuentra algún error, entonces puede haber habido un problema con el proceso de copia de seguridad o restauración.

Para garantizar aún más la integridad de los datos, puede realizar consultas más complejas para verificar valores de datos específicos o relaciones entre tablas. Sin embargo, para este laboratorio, hemos verificado la precisión básica de los datos comprobando el contenido de las tablas users y products.

Salga de la shell de MySQL:

exit

Ahora ha verificado con éxito la precisión de los datos restaurados. Esto finaliza el laboratorio sobre exportar, hacer copias de seguridad y restaurar bases de datos MySQL.

Resumen

En este laboratorio, aprendiste cómo utilizar la herramienta de línea de comandos mysqldump para crear una copia de seguridad lógica de una base de datos MySQL. Esto incluyó crear una base de datos de muestra llamada mydatabase con una tabla users e insertar datos de muestra. Luego, utilizaste mysqldump para exportar toda la base de datos a un archivo SQL, mydatabase_backup.sql.

El proceso demostró la sintaxis básica del comando mysqldump, incluyendo la especificación del nombre de usuario, la contraseña, el nombre de la base de datos y el archivo de salida. Este archivo de copia de seguridad se puede utilizar para restaurar la base de datos a su estado original o migrarla a otro servidor.