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).
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