Como exportar um certo número de bancos de dados MySql com um comando

Como exportar um certo número de bancos de dados MySql com um comando

Preciso exportar cerca de 20 bancos de dados em um servidor MySql que contém cerca de 100 bancos de dados diferentes. É possível exportar uma lista de nomes de bancos de dados em arquivos separados usando um comando de console? (no Linux, é claro).

Responder1

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

Você poderia usar greppara remover bancos de dados indesejados como mysqleinformation_schema

Responder2

Crie um arquivo de texto com o nome de cada banco de dados do qual deseja fazer backup em sua própria linha

por exemplo

db1
reports

Então use um script como este

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

Responder3

A solução mais fácil seria um loop for simples na linha de comando. Nos meus exemplos , quero exportar os bancos de dados carse .animalscomputers

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

informação relacionada