"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo automatizar el volcado de tablas MySQL en archivos separados?

¿Cómo puedo automatizar el volcado de tablas MySQL en archivos separados?

Publicado el 2024-12-21
Navegar:695

How Can I Automate Dumping MySQL Tables into Separate Files?

Volcar automáticamente tablas MySQL para separar archivos

La utilidad mysqldump incorporada permite volcados selectivos de tablas, pero requiere nombres de tablas preespecificados . Para un enfoque dinámico que maneje nuevas adiciones de tablas, es necesaria una solución automatizada.

Una de esas soluciones es un script de shell que consulta dinámicamente la base de datos para todos los nombres de tablas y vuelca cada tabla en un archivo comprimido separado. Esto elimina la necesidad de mantener manualmente el nombre de la tabla en el script de volcado.

Aquí hay un script de muestra que logra esta funcionalidad:

#!/bin/bash

# Descr: Dump MySQL table data into separate SQL files for a specified database.
# Usage: Run without args for usage info.
# Author: @Trutane

[ $# -lt 3 ] && echo "Usage: $(basename $0) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1

DB_host=$1
DB_user=$2
DB=$3
DIR=${4:-.}

[ -d $DIR ] || mkdir -p $DIR

echo -n "DB password: "
read -s DB_pass

tbl_count=0

for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables') 
do 
    echo "DUMPING TABLE: $DB.$t"
    mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t | gzip > "$DIR/$DB.$t.sql.gz"
    tbl_count=$(( tbl_count   1 ))
done

echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"

Este script solicita la contraseña de la base de datos, consulta los nombres de las tablas en la base de datos especificada y vuelca los datos de cada tabla como comandos SQL en archivos individuales. archivos comprimidos dentro del directorio especificado (o el directorio de trabajo actual de forma predeterminada).

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3