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