shell脚本
#!/bin/bash
#完成数据库的定时备份
#备份的路径
BACKUP=/root/data
#当前的时间作为文件名
#DATETIME=$(date +%Y_%m_%d_%H%M%S)
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#可以输出变量调试
#echo ${DATETIME}
echo "==========开始备份==========="
echo "备份的路径是 $BACKUP/$DATETIME.tar.gz"
#主机
HOST=127.0.0.1
#用户名
DB_USER=root
#密码
DB_PWD=root
#备份数据库名
DATABASE=test
#创建备份的路径
#如果备份的路径文件夹存在就使用,否则创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#mkdir -p "${BACKUP}/$DATETIME"
#echo "备份路径 ${BACKUP}/$DATETIME 创建成功"
#执行mysql的备份数据库的指令
#mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATABASE.sql.gz
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATABASE.sql.gz
#mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST --databases $DATABASE > $BACKUP/$DATETIME/$DATETIME.sql
echo "备份数据库文件$BACKUP/$DATETIME/$DATETIME.sql 成功"
#打包备份文件
#cd $BACKUP
#tar -zcvf $DATETIME.tar.gz $DATETIME
#echo "打包成$DATETIME.tar.gz 成功"
#删除临时目录
#rm -rf $BACKUP/$DATETIME
#echo "删除临时目录$BACKUP/$DATETIME 成功"
#删除10天前的备份文件(-exec rm -rf {} \是固定写法,删除查询出来的数据)
#find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "==========备份完成==========="
注意点
1.要导出文件到目录,确保shell脚本有 读写执行的权限
2.shell脚本要使用 unix格式的,不然路径会乱码
vim xx.sh
:set ff
#如果是在 Windows 系统下写好的 shell脚本, set ff 会得到doc,需要将其改成unix的
:set ff=unix
:wq
#保存后,再写入该文件查询,就会是unix的
3.sql.gz 是压缩文件,可以使用 gunzip xx.sql.gz 解压,原压缩文件会消失,解压后是 .sql文件
4.shell 语句中的备份全库数据,生成的文件中包含 删表建表语句,以及insert语句
5.服务器中执行.sql 文件 ,进入sql命令行后 source table.sql;
mysql -uUsername -p
#输入密码
#进入到sql命令行中
#使用的数据库名
>use dateBase;
#要执行的sql文件,sql文件要写绝对路径
>source /root/table.sql;
以上就完成mysql的全库备份,如果有需要定时备份的,可以将shell脚本加入到定时计划中。