Ach5

¿Qué es mysqldump y cómo lo uso?

Ach5

Como una de las principales bases de datos disponibles de forma gratuita, MySQL es una opción popular para todo tipo de aplicaciones web. Al estar expuesto a Internet, su aplicación, por supuesto, está expuesta a ataques maliciosos. Si su servidor está comprometido, en el mejor de los casos necesitará reinstalar su aplicación; en el peor de los casos, puede perder sus datos por completo. También eventualmente estará en una situación en la que necesita migrar una base de datos de un servidor a otro.

¿Para qué se utiliza mysqldump?

La herramienta mysqldump lo tiene cubierto para ambas situaciones. Su función básica es tomar una base de datos MySQL y "volcarla" como un archivo de texto. Pero no cualquier archivo de texto ... el archivo es un conjunto de sentencias SQL. Estas declaraciones, cuando se ejecuten, reconstruirán su base de datos al estado exacto en que se encontraba cuando ejecutó el volcado.

Por lo tanto, puede usar mysqldump para exportar una base de datos. Estos pueden ser para fines de copias de seguridad, o porque está moviendo la base de datos a un nuevo host. En cualquier caso, en algún momento importará el archivo de texto de nuevo a un servidor de base de datos MySQL. Ejecutará todas las sentencias de SQL en el archivo, lo que reconstruye su base de datos a su estado original. Esta parte no usa realmente el comando mysqldump, ¡pero tampoco sería posible sin esta utilidad!

Los documentos de MySQL enumeran otros métodos para hacer copias de seguridad, pero todos ellos tienen sus propios inconvenientes:

  • Hacer copias de seguridad de una base de datos de MySQL Enterprise es una excelente manera de lograr estas copias de seguridad ... si no le importa la etiqueta de precio de Enterprise.

  • Copiar los directorios de datos de la base de datos puede ser complicado si se está moviendo a través de sistemas operativos, ya que sus destinos serán diferentes.

  • Exportar a un archivo de texto delimitado le dará el contenido, pero tendrá que recrear la estructura usted mismo. Y es mejor que lo hagas bien ...

  • A menudo puede hacer copias de seguridad de bases de datos de programas GUI como MySQL Workbench. Pero este es un proceso manual, es decir, no es algo que pueda escribir o incluir en un trabajo por lotes.

Instalación de la herramienta mysqldump

Si está interesado en este artículo, es probable que ya tenga instalado MySQL. Si ese es el caso, buenas noticias, ¡ya tienes mysqldump! Si no, simplemente puede instalar MySQL en la forma estándar para su sistema operativo.

Para Windows, consulte nuestras instrucciones aquí para instalar MySQL en Windows 7 (el proceso de instalación sigue siendo muy similar). Del mismo modo, en macOS, consulte nuestras instrucciones para instalar MySQL en macOS 10.7 (de nuevo, más antiguo pero aún aplicable). Los usuarios de sistemas Linux basados en Ubuntu pueden usar el siguiente comando para instalar el cliente MySQL y las utilidades:

sudo apt install mysql-client

Extraer un volcado de MySQL

Una vez instalado, puede usar mysqldump para obtener una copia de seguridad completa de su base de datos.

mysqldump -h [your DB host's name or IP] -u [the DB user's name] -p [the database name] > db_backup.sql

Vamos a romper este comando un poco:

  • "-h": esta bandera es el host de la base de datos. Puede ser un nombre de host completo (por ejemplo, myhost.domain.com) o una dirección IP. También puede dejarlo en blanco si lo está ejecutando en el mismo host que el servidor MySQL.

  • "-u": Como se mencionó, este es tu nombre de usuario.

  • "-p": si está bien asegurada su instalación de MySQL, necesitará una contraseña para conectarse. Este indicador sin argumento le pedirá una contraseña cuando ejecute el comando. A veces es útil proporcionar su contraseña directamente como argumento para este indicador, por ejemplo, en un script de copia de seguridad. Pero cuando se le solicite, no debería hacerlo, porque si alguien tiene acceso a su computadora, podría obtener esta contraseña en su historial de comandos.

  • "> db_backup.sql": esta última parte le dice a mysqldump que dirija toda su salida a un archivo. Normalmente, el comando enviaría todo directamente a la consola, lo que significa que vería pasar un montón de sentencias de SQL. Pero en cambio, el símbolo *> * es un signo para canalizar todas esas cosas en el archivo de texto nombrado en su lugar. Y si este archivo no existe, se creará automáticamente.

Cuando haya terminado, tendrás un archivo .SQL. Este es solo un archivo de texto que contiene sentencias de SQL. Puedes abrirlo en cualquier editor de texto para inspeccionar los contenidos. Al observar una exportación desde una base de datos de WordPress, puede ver cómo se agrupan estos archivos.

El archivo está dividido en secciones. En la imagen anterior, podemos ver que la primera sección configura la tabla para los comentarios de WordPress. La segunda sección luego recrea el contenido (es decir, los registros de comentarios) que estaba en esas tablas. Cuando vuelva a importar su volcado de MySQL nuevamente, el comando funcionará a través del archivo, ejecutará las sentencias y reconstruirá su base de datos tal como estaba. Asique como haces eso? Vamos a ver.

Importando un archivo de volcado de MySQL

Antes de poder hacer esto, necesitará una base de datos ya creada y un nombre de usuario y contraseña válidos. También debe tener todos los permisos para la base de datos. (Estrictamente hablando, no necesita el permiso GRANT, pero es más fácil otorgarlos a todos). Puede encontrar detalles sobre los permisos de la base de datos en este artículo.

Para volver a importar sus datos, siga estos pasos:

  1. Inicie sesión en el servidor MySQL con el comando mysql.

  2. Escriba use [nombre de la base de datos] en el indicador, sustituyendo el nombre apropiado de la base de datos.

  3. Ingrese fuente [nombre de archivo], sustituyendo el nombre del archivo de volcado que tomó anteriormente.

Cuando termine, verá una larga lista de mensajes que indican que las instrucciones SQL se están ejecutando. Esté atento a los errores, pero si tiene los permisos correctos, debería estar bien, ya que es una base de datos en blanco.

Una vez que se complete el proceso, tendrá un duplicado de su base de datos original. Puedes verificar esto haciendo otro volcado y comparando las dos salidas. Un editor de texto decente podrá hacer esto por usted, o una herramienta dedicada * diff *.

Solo hay dos diferencias entre estos archivos, representados por líneas rojas en la parte superior e inferior de la barra de desplazamiento derecha. La primera es la línea que contiene el nombre de la base de datos, y esperamos que sea diferente porque los nombramos de manera diferente. El segundo, hasta el final, es la marca de tiempo del archivo de volcado. Y también esperamos que esto sea diferente, ya que recreamos la segunda base de datos después de la primera. De lo contrario, los archivos son exactamente iguales, lo que significa que las bases de datos que los generaron también lo son.