安哥网络 发表于 2013-12-20 01:54:50

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]
查看完整版本: mysql备份所有数据库-it论坛