mysqldump导出table,view,trigger,routines,events
2015-06-02 18:35
696 查看
实现功能: 可以按库名导出一个mysql实例中的表,视图,存储过程/函数,触发器,事件 用法:1. 将脚本保存为dump.sh2. sh dump.sh 备份路径 用户 密码 IP 端口 例:sh dump.sh /backup/bjdb root root 127.0.0.1 3306
############################################## # Function: DUMP MYSQL TABLE, PROCEDURE,VIEW,TRIGGER,EVENT # Date: 2015-01-21 # Author: Liang Wei # Mail: liangweione@gmail.com # Version: 1.0 ########################################################### #DEFINE VARIABLES MYSQL=`which mysql` MYSQLDUMP=`which mysqldump` GZIP=`which gzip` BACKUP_DIRECTORY=$1 V_USERNAME=$2 V_PASSWORD=$3 V_HOST=$4 V_PORT=$5 MYCMD="$MYSQL -u$V_USERNAME -p$V_PASSWORD -h$V_HOST -P$V_PORT " DUMP_TB="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD -h$V_HOST -P$V_PORT --compact -d" DUMP_TRIGGER="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD -h$V_HOST -P$V_PORT --triggers \ --no-create-info --no-data --no-create-db --skip-opt" DUMP_PROC="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD -h$V_HOST -P$V_PORT --routines \ --no-create-info --no-data --no-create-db --skip-opt --skip-triggers" DUMP_EVENTS="$MYSQLDUMP -u$V_USERNAME -p$V_PASSWORD -h$V_HOST -P$V_PORT --events \ --no-create-info --no-data --no-create-db --skip-opt --skip-triggers" #echo MYSQL=$MYSQL #echo MYSQLDUMP=$MYSQLDUMP #echo GZIP=$GZIP # VALIDATE INPUT ARGUMENTS if [ "$#" -ne 5 ]; then echo "Usage: $0 <BACKUP_DIRECTORY> <V_USERNAME> <V_PASSWORD> <V_HOST> <V_PORT>" exit 1; fi # VALIDATE BACKUP DIR BACKUP_DIR="$1" if [ ! -d $BACKUP_DIR ]; then echo "$BACKUP_DIR does not exist" exit 1; fi DUMP_DIR="$BACKUP_DIR/`date +%F`" if [ ! -d $DUMP_DIR ]; then mkdir -p $DUMP_DIR if [ ! -d $DUMP_DIR ]; then echo "Failed to create backup dir $DUMP_DIR" exit 1; fi fi for DB in `$MYCMD -N -e "show databases" | grep -v 'Database\|performance_schema\|information_schema'` # for DB in sakila do mkdir -p $DUMP_DIR/$DB/{table,view,trigger,proc,event} # Dump table define for TB in `$MYCMD -N -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES \ WHERE TABLE_SCHEMA IN('${DB}') AND ENGINE IS NOT NULL AND ENGINE NOT IN('CSV');" ` do BK_FILE=$DUMP_DIR/$DB/table/${TB}.sql $DUMP_TB $DB $TB >$BK_FILE done #Dump view for VW in `$MYCMD -N -e "SELECT table_name from information_schema.views where TABLE_SCHEMA in('${DB}')" ` do $DUMP_TB $DB $VW > $DUMP_DIR/$DB/view/${VW}.sql done #Dump triggers $DUMP_TRIGGER $DB >$DUMP_DIR/$DB/trigger/${DB}_trigger.sql #Dump routines $DUMP_PROC $DB >$DUMP_DIR/$DB/proc/${DB}_proc_function.sql #Dump events $DUMP_EVENTS $DB >$DUMP_DIR/$DB/event/${DB}_event.sql
相关文章推荐
- MySQL
- MySQL
- MySQL
- mysql数据捣腾
- Mysql字符串截取函数SUBSTRING的用法说明
- mysql将字符转换成数字
- mysql时间操作函数和存储过程
- mysql 权限篇
- mysql数据库中group by和sum一起使用语句的简单介绍 .
- 常用的MySQL数据类型
- 【图】pd导出sql和mysql客户端导入sql文件时注意事项
- mysql中间件研究(Atlas,cobar,TDDL)[转载]
- mysql备份和恢复
- 【解决】Mysql字符集问题
- Mysql用户权限管理
- mysql函数二
- mac在命令行使用mysql
- MySQL中SELECT+UPDATE处理并发更新问题解决方案分享
- 编译安装或者mysql启动时遇到的错误小记
- mysql主从切换