«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу автоматизировать сохранение таблиц MySQL в отдельные файлы?

Как я могу автоматизировать сохранение таблиц MySQL в отдельные файлы?

Опубликовано 21 декабря 2024 г.
Просматривать:654

How Can I Automate Dumping MySQL Tables into Separate Files?

Автоматический дамп таблиц MySQL в отдельные файлы

Встроенная утилита mysqldump позволяет создавать выборочные дампы таблиц, но требует заранее заданных имен таблиц . Для динамического подхода, который обрабатывает добавление новых таблиц, необходимо автоматизированное решение.

Одним из таких решений является сценарий оболочки, который динамически запрашивает базу данных на предмет всех имен таблиц и выгружает каждую таблицу в отдельный сжатый файл. Это устраняет необходимость ручного обслуживания имени таблицы в сценарии дампа.

Вот пример сценария, реализующего эту функциональность:

#!/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"

Этот сценарий запрашивает пароль базы данных, запрашивает имена таблиц в указанной базе данных и выгружает данные каждой таблицы в виде команд SQL в отдельные сжатые файлы в указанном каталоге (или в текущем рабочем каталоге по умолчанию).

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3