Descarrega bancos de dados MYSQL para arquivos induviduais

4

Alguém tem um liner (linha de comando) que despeje todos os bancos de dados para separar os arquivos de despejo, por exemplo

forumdb.dump
wikidb.dump
etc.
    
por James 13.09.2011 / 21:11

3 respostas

4

Por que não, ainda um longo forro embora:)

mkdir mysql-all-dumps ; for x in 'mysql -u root -pXXXXXXXX -e "SHOW DATABASES;" | tr -d "| " | grep -vE '(Database|information_schema)'' ; do mysqldump -v -u root -pXXXXXXXXX $x > mysql-all-dumps/$x.sql ; done

Certifique-se de substituir o XXXX pela senha correta do mysql e a opção verbose no mysqldump também é opcional.

    
por 13.09.2011 / 21:45
4

Eu não acredito que exista um bom one-liner, mas aqui está um fragmento de script. Você pode adaptar isso ao seu uso. Se você quiser codificar sua lista de banco de dados, você provavelmente poderia baixá-la para um de uma linha. Mas eu precisava de algo que pudesse lidar com acréscimos e quedas de banco de dados.

OPTIONS="--verbose --lock-tables --flush-logs"

BACKUPDATE='date +"%y%m%d%H"'

DBSQL="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA where SCHEMA_NAME!='information_schema' \
       AND SCHEMA_NAME!='performance_schema' order by SCHEMA_NAME"

# retrieve list of databases
DBS='/usr/bin/mysql --defaults-extra-file=/etc/mysql/credentials.cnf --batch \
                                  --skip-column-names --execute "$DBSQL"'
# cleat it up a bit
DBS='echo $DBS | tr -d '\n' | sed -e "s/ \+/ /g"'

# backup each database into a separate file
for DB in $DBS; do
  /usr/bin/mysqldump --defaults-extra-file=/etc/mysql/credentials.cnf ${OPTIONS} $DB > /backup_${DB}_${BACKUPDATE}
done
    
por 13.09.2011 / 21:29
4

pode fazer isso

cd mysql_data_dir ; for d in $(ls -d */ | xargs basename) ; do mysqldump $d > /path/to/dumps/$d.dump; done

Basicamente, liste todos os diretórios no diretório de dados e, em seguida, apenas despeje-os. Eu fiz o acima em um piscar de olhos se eu não tivesse um trabalho definido para fazer backup de arquivos individuais.

    
por 13.09.2011 / 21:44

Tags