shell脚本实现数据库备份和还原
自动化测试过程中,涉及到数据的增删改查操作,如果不对数据库进行备份和还原,那么无法进行自动化,例如,前端页面提交表单,使用脚本自动新增一条数据,新增成功之后,第二次及以后跑测试脚本就会失败,因为数据库已存在该数据,这个时候就需要在跑脚本之前先把数据库恢复到初始状态。
备份和还原实际就是把数据库下的数据和结构导出为sql文件,再把sql文件导入到数据库。
备份
sql语法:
-
全量备份(数据+结构):#mysqldump -uroot -p123456 -A > 备份文件路径
**
-
指定库备份(数据+结构):# mysqldump -uroot -p123456 库名 > 备份文件路径**
-
多个库备份(数据+结构):# mysqldump -uroot -p123456 --databases db1 db2 >
备份文件路径
shell备份脚本:
#!/bin/env bash
date=$(date +'%s')
bak_dir=/root/shell06/bak
if [ ! -d $bak_dir ];then
mkdir -p $bak_dir
fi
mysqldump -uroot -p123456 xianghuan > $bak_dir/$date.sql
还原
sql语法:
- 1.系统命令方法:mysql -uroot -p123456 库名 < 备份文件路径
- 2.source方法:source 备份文件路径(该方法需要先登录数据库并指定数据库)
shell还原脚本:
#!/bin/env bash
lst=$(ls /root/shell06/bak)
sql=0
for i in $lst
do
num=${i%.*}
if [ $num -gt $sql ];then
sql=$num
fi
done
12 mysql -uroot -p123456 xianghuan < /root/shell06/bak/$sql.sql