Linux定时备份MySQL

article/2025/10/6 2:55:13

Linux定时备份MySQL

  • 1.备份脚本
  • 2.赋予脚本执行权限
  • 3.添加定时任务
  • 4. crontab定时任务表达式
  • 5. 常见问题
  • 6. linux软连接
  • 7.参考链接:

阅读本文您将了解到:

  1. 定时备份数据库
  2. linux定时任务
  3. crontab定时任务表达式
  4. shell脚本变量命名规则
  5. linux 软连接的使用
  6. vim使用技巧

1.备份脚本

用vim编辑器进行编辑,如果不熟练的小伙伴可以点击下方链接哟~
Vim入门技巧&常用命令整理

#!/bin/bash#保存备份个数,备份31天数据
number=31
#备份保存路径
backup_dir=/home/mysqlbackup/xxx
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具 不要有空格,可用全路径名,或者使用软连接
tool=mysqldump
#用户名
username=root
#密码
password=pwd
#将要备份的数据库
database_name=xxx#如果文件夹不存在则创建
if [ ! -d $backup_dir ]; 
then     mkdir -p $backup_dir; 
fi#简单写法  mysqldump -u root -ppwd xxx > /home/mysqlbackup/xxx/xxx-$filename.sql
# 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
# $tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql
# 压缩文件格式
$tool -h $server_ip -P 3306 -u $username -p$password $database_name | gzip > $backup_dir/$database_name-$dd.sql.gz
#写创建备份日志 可有可无
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt#找出需要删除的备份
delfile=`ls -l -crt  $backup_dir/*.sql.gz | awk '{print $9 }' | head -1`#判断现在的备份数量是否大于$number
count=`ls -l -crt  $backup_dir/*.sql.gz | awk '{print $9 }' | wc -l`if [ $count -gt $number ]
then#删除最早生成的备份,只保留number数量的备份rm $delfile#写删除文件日志echo "delete $delfile" >> $backup_dir/log.txt
fi

2.赋予脚本执行权限

chmod 777 脚本名.sh

在这里插入图片描述

3.添加定时任务

用vim编辑器进行编辑
Vim入门技巧&常用命令整理

# 1. 添加定时任务
crontab -e# 2. 设置每天晚上3点执行
0 3 * * * sh /你的路径/mysqlbackup.sh# 3. 查看任务列表
crontab -l# 4. 进入任务列表文件, 单个删除
cd /var/spool/cron/
vim root # 5. 从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
crontab -r

在这里插入图片描述
在这里插入图片描述

4. crontab定时任务表达式

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,
它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command其中:
minute:  表示分钟,可以是从0到59之间的任何整数。
hour:    表示小时,可以是从0到23之间的任何整数。
day:     表示日期,可以是从1到31之间的任何整数。
month:   表示月份,可以是从1到12之间的任何整数。
week:    表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command: 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。# 实例1:每1分钟执行一次my.sh
* * * * * my.sh# 实例2:每小时的第5和第15分钟执行
5,15 * * * * my.sh# 实例3:在上午8点到12点的第5和第15分钟执行
5,15 8-12 * * * my.sh# 实例4:每隔两天的上午8点到12点的第5和第15分钟执行
5,15 8-12 */2  *  * my.sh# 实例5:每周一上午8点到12点的第5和第15分钟执行
5,15 8-12 * * 1 my.sh

5. 常见问题

如果遇到sql文件是生成了,但是里面没有内容
说明你配置的mysqldump不能全局访问,
建议使用全路径尝试一下,
或者在/usr/bin目录下创建mysqldump命令软连接.
注意在变量=之间不要有空格

shell脚本变量命名须遵循如下规则:
•首个字符必须为字母(a-z,A-Z)。
•中间不能有空格,可以使用下划线(_)。
•不能使用标点符号。
•不能使用bash里的关键字(可用help命令查看保留关键字)。

6. linux软连接

软链接又叫符号链接,这个文件包含了另一个文件的路径名。
可以是任意文件或目录,可以链接不同文件系统的文件。

# 将mysqldump命令软连接到/usr/bin目录下.这样就可以在控制台直接访问mysqldump命令了.# 语法: ln -s 源文件 目标文件。 
ln -s /usr/local/mysql/bin/mysqldump /usr/bin

7.参考链接:

MySQL定时备份数据库

Linux Crontab 定时任务

mysqldump 定时任务 执行后备份的文件为空

MySql定时备份脚本

crontab百度百科

Shell变量赋值语句不能有空格

MySQL数据库基础备份

MySQL之mysqldump的使用

linux 软连接的使用


http://chatgpt.dhexx.cn/article/0dL2ttSA.shtml

相关文章

MySQL 如何定时备份数据库

目录 1.mysqldump命令备份数据 2.mysqldump常用操作示例 2.1. 备份全部数据库的数据和结构 2.2.备份全部数据库的结构(加 -d 参数) 2.3. 备份全部数据库的数据(加 -t 参数) 2.4.备份单个数据库的数据和结构(,数据库名mydb) 2.5. 备份单个数据库的…

MySQL 定时备份数据库(非常全),值得收藏!

在操作数据过程中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行 MySQL 定时备份数据库。 一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工…

mysql数据库定时备份

1 环境检查 1. 执行本手册前,请正确安装Mysql数据库,并知晓数据库用户名和密码; 2. 执行本手册前,请先确定Mysql数据库数据要储存的天数;默认30 2 批处理文件配置 当前步骤主要实现以下目标配置: 配置…

mysql实现定时备份

1、编写脚本xxx.bat echo off echo 设置MySql数据库的连接信息 set host127.0.0.1 set port3306 set userroot set pass123456 echo 设置要备份MySql数据库名称 set dbnameprojectmonitoring echo 获取当天的日期格式,例如:2022-12-13-14-30-40set back…

MySQL数据库定期自动备份(定时任务)

一、脚本备份; 1、新建一个backupDB.txt文件,然后通过重命名修改文件后缀为.bat,将 backupDB.bat 放置在 D:/mysql5.7目录下,文件内容如下: echo off set h%time:~0,2% set h%h: 0% set hhmiss%date:~0,4%%date:~5,2…

【Axure】Axure RP 9 下载、短期试用破解安装和汉化步骤 —— 可供安装参考,短期试用,目前授权码已逐渐失效

目录 一、Axure RP 9 下载 二、Axure RP 9 安装 三、Axure RP 9 破解 四、Axure RP 9 汉化 一、Axure RP 9 下载 (1)最新版本 Axure RP 9 下载地址(Mac & window):点击前往下载 (2)汉化…

Axure PR9的安装与激活

一、Axure安装包与汉化包的下载 概述:2021/04/30 Axure官网发布了Axure RP 10的正式版,但因为目前市面上还普遍再用Axure RP 8和Axure RP 9(Axure RP 10不兼容以前版本),顾小编还是装了Axure RP 9 下载:登录Axure中文学习网&…

原型设计工具:Axure RP9 中文激活版 win/mac

Axure RP 9 是一款强大的原型设计工具,它能够帮助用户快速创建高质量的交互原型、线框图、流程图和文档等。 ​Axure RP 9 具有以下特点: 强大的交互能力:Axure RP 9 提供了丰富的交互组件和事件,可以轻松实现交互功能&#xff0…

数据库相关中间件介绍

数据库相关中间件介绍 详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt412 这里主要介绍互联网行业内有关数据库的相关中间件。数据库相关平台主要解决以下三个方面的问题: 为海量前台数据提供高性能、大容量、高可用性的访问 为数…

Mysql 中间件 oneProxy总结

建议使用之前把官方的文档全部通读一遍 这里提供一个我的网盘地址oneproxy 百度网盘 0. 先对 oneproxy 有个大概的了解,知道他所处的位置 1. MySQL服务器 创建test用户,密码test存在test数据库确认oneproxy能登录 1.1 注意事项 所有MySQL节点有相同的用户名和口…

mysql几种中间件对比

网上找到的图 重点比较几个 1.atlas 基于mysql-proxy,360团队 优点: 配置简单,支持读写分离 缺点: 年份久,功能有限 地址:https://github.com/Qihoo360/Atlas/wiki/Atlas%E5%8A%9F%E8%83%BD%E7%89%B9%E7%82%B9FAQ 2.my…

Mysql中间件研究

转自:https://blog.csdn.net/kingzone_2008/article/details/51513910 mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源…

mysql中间件研究( Atlas,cobar,TDDL,mycat,heisenberg,Oceanus,vitess,OneProxy )

mysql中间件研究( Atlas,cobar,TDDL,mycat,heisenberg,Oceanus,vitess,OneProxy ) mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其…

mysql中间件 拦截sql

对mysql进行读写分离的中间件有哪些 mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。 其他mysql开源中间件产品有:Atlas,cobar,td…

数据库中间件mysql-proxy细节【mysql官方的中间件】

一、mysql-proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server,它使用mysql协议,任何连接mysql的上游无需任何更改即可迁移至mysql-proxy上。 mysql-proxy最基…

数据库中间件概述

1.为什么需要数据库中间件,何为数据库中间件 不同的应用程序有不同的数据存储方式和组网。数据量小的普通的应用程序一般采用单机数据库来持久化数据,如下图。 当数据的并发读写超过数据库服务器的处理能力时,需要进行读写分离来分离读写压力…

数据库访问中间件

数据库访问中间件 什么是ORM框架 对象关系映射(Obiect Relational Mapping,简称ORM),用于实现面向对象编程语言里不同类型系统的数据之间的转换。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的…

MySQL中间件Atlas

MySQL中间件Atlas atlas简介 Mysql 的 proxy 中间件有比较多的工具,例如,mysql-proxy(官方提供), atlas , cobar, mycat, tddl, tinnydbrouter等等。 而Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在…

【MySQL】数据库(分库分表)中间件对比

分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm。 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后的表呢,还是一张…

数据库中间件详解

数据库中间件详解 原创: 田守枝 田守枝的技术博客 3月24日 1 数据库拆分过程及挑战 互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。…