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

Como una de las principales bases de datos disponibles gratuitamente, MySQL es una opción popular para todo tipo de aplicaciones web. Al estar expuesto a Internet, su aplicación está, por supuesto, expuesta a ataques maliciosos.

Como una de las principales bases de datos disponibles gratuitamente, MySQL es una opción popular para todo tipo de aplicaciones web. Al estar expuesto a Internet, su aplicación está, por supuesto, expuesta a ataques maliciosos. Si su servidor está comprometido, en el mejor de los casos deberá reinstalar su aplicación; en el peor de los casos, puede perder sus datos por completo. Eventualmente, también se encontrará en una situación en la que deberá 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 instrucciones SQL . Estas declaraciones, cuando se ejecutan, 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 nuevamente en un servidor de base de datos MySQL. Ejecutará todas las declaraciones SQL en el archivo, que reconstruye su DB a su estado original. Esta parte en realidad no usa 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 estos tienen sus propios inconvenientes:

  • Copiar una base de datos desde MySQL Enterprise es una excelente manera de lograr estas copias de seguridad … si no le importa el 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 será mejor que lo hagas bien …
  • A menudo puede hacer una copia de seguridad de bases de datos desde 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.

Instalar 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 de la manera 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 el mismo). Del mismo modo en macOS, consulte nuestras instrucciones para instalar MySQL en macOS 10.7 (nuevamente, 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 [el nombre o la IP de su host DB] -u [el nombre del usuario DB] -p [el nombre de la base de datos]> db_backup.sql 

Analicemos un poco este comando:

  • «-h» : este indicador 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 dejar esto en blanco si lo está ejecutando en el mismo host que el servidor MySQL.
  • «-u» : como se mencionó, este es su nombre de usuario .
  • «-p» : si está bien protegida 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 respaldo. Pero en el aviso, no debería, porque si alguien obtuviera 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 generaría todo directamente en la consola, lo que significa que vería pasar un montón de instrucciones SQL. Pero en cambio, el símbolo *> * es una señal para canalizar todas esas cosas en el archivo de texto nombrado. Y si este archivo no existe, se creará automáticamente.

Cuando termine, tendrá un archivo .SQL. Este es solo un archivo de texto que contiene sentencias SQL. Puede abrirlo en cualquier editor de texto para inspeccionar el contenido. Si observa 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 de arriba, 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 declaraciones y reconstruirá su base de datos tal como estaba. Asique como haces eso? Vamos a ver.

Importar un archivo de volcado de MySQL

Antes de que pueda 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 simplemente 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 haya terminado, verá una larga lista de mensajes que indican que las declaraciones 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. Puede 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 * como la que se muestra en la imagen a continuación:

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 para el 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.

Rate article
labsfabs.com
Add a comment