Linux用sh脚本备份mysql8.0数据库

今天公司让用sh整一个备份数据库,然后用java去调用这个sh来实现备份数据库的功能,没有用liunx服务器的crond。可能是从便于维护的角度考虑的,毕竟是离线的项目不能上网,废话少说开始备份数据库的步骤:
系统版本:
Linux version 4.18.0-193.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri May 8 10:59:10 UTC 2020
mysql版本:
mysql-8.0.20-linux-x86_64-minimal.tar.xz
本文已提前安装好mysql数据库!

  1. 创建我们用于存放备份数据的文件夹
mkdir /backups_data
  1. 配置musqldump
vi /etc/my.cnf
#根据自身情况写入mysql账户名。mysql账户密码
[mysqldump]
host=localhost
user=账户名
password=账户密码
  1. 创建俺们要用来执行的sh文件,并写入下列内容
vim /usr/sbin/backups_mysqldb.sh
#备份路径,第一步创建的文件夹绝对路径
backupdir=/usr/local/mysql/backups_data
#日志路径,记录咱们在什么时间备份过
mysql_backup_log="${backupdir}/mysql_backups.log"
#当前日期
newdate=$(date +"%Y-%m-%d")
#备份文件名称+文件具体存储路径
filename=$backupdir/mysql_$newdate.sql
#脚本执行日志
#开始
echo "开始备份>> 当前时间:$(date "+%Y-%m-%d %H:%M:%S")">>"$mysql_backups_log"
#备份所有数据库
#/usr/local/mysql/bin/mysqldump  --add-drop-table --lock-tables  --all-databases --compact > $filename
#备份一个或多个,多个用逗号隔开
/usr/local/mysql/bin/mysqldump  --add-drop-table --lock-tables  --databases dmp_tj --compact > $filename
#结束
echo "结束备份>> 结束时间:$(date "+%Y-%m-%d %H:%M:%S")>>备份路径:$filename">>"$mysql_backups_log"
#删除七天以外的备份数据。根据项目需要选择加不加,就是通过名称格式拿到所有的文件时间进行删除
#find $backupdir -name "mysql_*.sql" -type f -mtime +7 -exec rm -rf {} \;
  1. 给sh文件赋予权限
#进入sh文件所在文件夹
cd /usr/local/mysql
chmod u+rwx backups_mysqldb.sh
  1. 运行测试
./backups_mysqldb.sh
  1. 运行完成后来到第一步我们创建的文件夹里
    在这里插入图片描述
cd backups_data/
ll

ok,那俺们备份就成功了,备份了怎么恢复呢

 #来到数据库备份文件目录
 cd /usr/local/mysql/backups_data
 #dmp_tj是我的数据库 mysql_2022-06-21.sql是我的数据库文件
 mysql -u root -p dmp_tj < mysql_2022-06-21.sql
 Enter password: 输入密码

那么,这就完成了哦,此外你可能会遇到,mysql未找到命令,等等,注意检查你的mysql是否加入了全局变量~/.bash_profile这个里面,还有sh脚本赋予权限的时候是否正确,脚本里的路径或名称是否正确哦

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值