Как экспортировать определенное количество баз данных MySql с помощью одной команды

Как экспортировать определенное количество баз данных MySql с помощью одной команды

Мне нужно экспортировать около 20 баз данных на сервере MySql, которые содержат около 100 различных баз данных. Возможно ли экспортировать список имен баз данных в отдельные файлы с помощью консольной команды? (конечно, в Linux).

решение1

echo "show databases" | mysql -N | while read db
do
  mysqldump ${db} > ${db}.sql
done

Вы можете использовать grepдля удаления нежелательных баз данных, таких как mysqlиinformation_schema

решение2

Создайте текстовый файл с именем каждой базы данных, резервную копию которой вы хотите создать, на отдельной строке.

например

db1
reports

Тогда используйте такой скрипт

#!/bin/bash
ERRORS=0

while read db
do
    echo "Processing $db"
    mysqldump -u root -p365576dx "$db" >"$db".sql
    EXITSTATUS=$?
    if [ "$ERRORS" -eq "0" -a "$EXITSTATUS" -ne "0" ]
    then
       ERRORS="$EXITSTATUS"
    fi

done<dbstodump

if [ "$ERRORS" -ne "0" ]
then
    echo "Errors occurred see above for details"
    exit 1
fi

решение3

Самым простым решением будет простой цикл for прямо в командной строке. В моих примерах я хочу экспортировать базы данных cars, animalsи computers.

for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done

Связанный контент