
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 grep
para remover bancos de dados indesejados como mysql
einformation_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 cars
e .animals
computers
for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done