mysql备份所有数据库-it论坛
mysql备份所有数据库-it论坛#!/bin/bash
MYSQL_CLIENT="/home/mysql/bin/mysql -uroot--default-character-set=gbk"
MYSQL_DUMP="/home/mysql/bin/mysqldump -d -uroot--default-character-set=gbk"
OUTPUT_PATH=/data/backup
for databases in `$MYSQL_CLIENT -e "show databases"|grep -vDatabase`
do
mkdir -p -m777 $OUTPUT_PATH/$databases/
$MYSQL_DUMP $databases >$OUTPUT_PATH/$databases/$databases.sql
for tables in `$MYSQL_CLIENT -e "show tables" $databases|grep -vTables_in_`
do
mv -f $OUTPUT_PATH/$databases/$tables$OUTPUT_PATH/$databases/$tables.old
$MYSQL_CLIENT -e "select * into outfile'$OUTPUT_PATH/$databases/$tables' from $tables" $databases
done
done
原理就是遍历所有库的所有表,在备份目录里面,再为每个库建立一个目录,包含一个建库语句,和每个表的数据文件,然后可以用loaddata infile 来导入到数据库里面。这种导法很快的。
摘自:http://blog.sina.com.cn/s/blog_4e74e42a01000ap3.html
我这里还没用gzip对数据文件进行压缩,大家可以继续完善。
页:
[1]