文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

总结:Linux系统上面定时备份mysql指定数据库的解决方案

2023-09-30 21:58

关注

总结:Linux系统上面定时备份mysql指定数据库的解决方案

一·Mysql数据库本身就自带备份数据库命令

1.mysql本身自带备份数据库为一个sql文件的命令,只需要在操作系统的终端里面执行就好了

命令格式1:mysqldump -h [IP或域名] -P [端口号] -u [登录账号] -p[登录密码] --databases [数据库名称] > [最终生成sql文件的存储路径]/xxx.sql示例:mysqldump  -h localhost -P 3306 -u root -p123456 --databases test > /Users/ideal/Desktop/test.sql命令格式2:不从配置文件读取对应参数值,必须命令行给出值mysqldump --no-defaults  -h [IP或域名] -P [端口号] -u [登录账号] -p[登录密码] --databases [数据库名称] > [最终生成sql文件的存储路径]/xxx.sql示例:mysqldump --no-defaults  -h localhost -P 3306 -u root -p123456 --databases test > /Users/ideal/Desktop/test.sql

注意:-p后面必须紧跟密码,之间不能有空格,不然会有问题

二·Linux和Unix操作系统都自带一个定时任务执行器:crontab

在Linux系统中,有一个非常强大的定时任务执行器,它叫做crontab。 crontab可以让用户在固定的时间、日期或者周期性地执行某些任务或命令。 crontab的使用非常简单,用户只需要编辑自己的crontab文件,就可以添加、修改或删除自己的定时任务。

1.一些基本的crontab命令示例:

crontab -l :列出当前用户的所有定时任务。
crontab -e :编辑当前用户的定时任务。
crontab -r :删除当前用户的所有定时任务。
crontab -u user -l :列出指定用户的所有定时任务。
crontab -u user -e :编辑指定用户的定时任务。
crontab -u user -r :删除指定用户的所有定时任务。

2.如何用crontab -e命令添加一个定时任务:

(1)使用crontab -e命令编辑或创建一个用户的计划任务列表。

crontab -e

(2)在计划任务列表中,每一行就代表一个计划任务。语法格式如下

* * * * * command arg1 arg2| | | | || | | | ----- Day of the Week (0 - 7) (Sunday is both 0 and 7)| | | ------- Month (1 - 12)| | --------- Day of the Month (1 - 31)| ----------- Hour (0 - 23)------------- Minute (0 - 59)

注意:这计划任务列表里面的command命令,其实就是Linux操作系统里面的命令。但有些命令是需要依赖系统环境变量的,而定时任务执行器里面却并不一定能够访问系统环境变量。所以建议使用命令的绝对路径。

例如:

0 2 * * * /path/to/your/script.sh

(3)添加完之后,可以使用crontab -l命令查看添加结果
在这里插入图片描述

三·将crontab定时任务与mysql的备份命令结合起来,形成最终解决方案

1.先将mysql的备份命令写成脚本文件形式(mysql-backup.sh)

(1)mysql-backup.sh脚本文件内容如下所示:自定义信息需要自己完善

#!/bin/bash# MySQL Server 登录信息MYUSER="数据库用户名"MYPASS="数据库用户密码"MYHOST="数据库主机地址"MYPORT="数据库端口号,默认为3306"MYDB="需要备份的数据库名称"# 备份相关配置信息BAKDIR="/var/db-backup/$(date +'%Y-%m-%d')"  # 备份保存目录BAKFILE="$BAKDIR/db.$(date +'%Y-%m-%d-%H%M%S').sql.gz"  # 备份文件名KEEPDAYS=7  # 保留天数# 创建备份目录if [ ! -d "$BAKDIR" ]; then    mkdir -p "$BAKDIR"fi# 备份数据库至压缩文件mysqldump -h "$MYHOST" -P "$MYPORT" -u "$MYUSER" -p"$MYPASS" --databases "$MYDB" | gzip > "$BAKFILE"# 清理旧备份文件,只保留指定天数内的备份,超过时间的就会被清除find "$BAKDIR" -name '*.sql.gz' -type f -mtime +"$KEEPDAYS" -delete

2.给脚本文件授权(可执行权限)

chmod 777 mysql-backup.sh

3.使用 crontab 命令设置定时任务:

0 2 * * * /usr/local/bin/mysql-backup.sh

四·常见异常:MySQL备份脚本写入Crontab计划性任务之后生成的备份文件大小为0解决方法

https://cloud.tencent.com/developer/article/1833718

来源地址:https://blog.csdn.net/weixin_48033662/article/details/130971969

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯