MySQL数据库基础备份(一)

MySQL数据库备份

windows系统下MySQL数据库备份

1.定时执行bat脚本文件(可以借助SQLyog或Navicat等工具)

1.新建MySQL数据库备份文件夹 D:\backup

2.新建bat脚本文件输入以下内容

rem ******MySQL backup start******

@echo off

set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"

::进入mysql安装目录的bin目录下

cd C:\Program Files\MySQL\MySQL Server 5.7\bin\

::执行备份操作

mysqldump --opt --single-transaction=TRUE --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "db_test" > D:\backup\mysqlbackup\backup_%Ymd%.sql

@echo on

rem ******MySQL backup end******

tip:如果要删除一周之前的备份

forfiles /p "D:\backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"

关于时间参数的参考:

%date:~0,10% //提取年月日信息

%date:~-3% //提取星期几信息

%time:~0,5% //提取时间中的时和分

%time:~0,-3% //提取时和分和秒信息

mysqldump 为MySQL提供的备份命令,该命令所在目录为MySQL安装目录下的bin文件夹中,此处直接使用该命令的前提是该命令所在bin文件夹已被设置为系统环境变量,如未设置,则要写全路径;

–user=root 为 MySQL 用户名;

–password=123456 为 MySQL 密码;

–host=127.0.0.1 为 MySQL 主机名;

“dn_test” 为要备份的数据库的名称;

backup_%Ymd%.sql 是根据当前时间规则生成备份文件的名称。

2.在Windows系统中添加定时执行任务即可,选择此bat脚本

Linux系统下MySQL数据库备份

基于Centos64位环境下

1.选择位置创建Mysql备份文件夹
cd /usr/local/mysql
mkdir backup
cd backup
2.建脚本文件
vim autobackup.sh
3.添加以下内容
filename=`date +%Y%m%d`
/usr/local/mysql/bin/mysqldump -uroot -proot db_stocker > /usr/local/mysql/backup/$filename.sql

保存后赋予可执行权限

chmod +x backup.sh  或者
chmod 777 backup.sh

如果遇到以下错误

在这里插入图片描述

原因:

当使用host参数为“localhost”连接Mysql服务时,会优先使用“sock文件”进行连接,而不是使用“IP:端口”进行连接,而Mysql尝试使用“sock文件”进行连接时,却无法获取“sock文件”的位置。

解决:

查看mysql服务

systemctl status mysqld.service

查看mysql进程

ps -ef | grep mysql

指定mysqldump 的socket属性

--socket=/var/lib/mysql/mysql.sock
4.检查crond有没有安装
rpm -qa | grep crond

安装

yum -y install vixie-cron
yum -y install crontabs
5.配置Linux系统下定时执行任务
crontab -e

输入以下内容

00 05 * * * source /usr/local/mysql/backup/backup.sh

每天五点定时执行脚本

crontab -l

查看定时任务是否添加

在这里插入图片描述

重启服务使配置生效

systemctl restart crond.service

crontab的语法规则格式:

代表意义分钟小时日期月份命令
数字范围0~590~231~311~120~7需要执行的命令

周的数字为 0 或 7 时,都代表“星期天”的意思。

特殊字符 代表意义

(星号) 代表任何时刻都接受的意思。举例来说,0 12 * * * command 日、月、周都是,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。

,(逗号) 代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command时间还是有五列,不过第二列是 3,6 ,代表3与6都适用

-(减号) 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command仔细看到第二列变成8-12.代表 8,9,10,11,12

都适用的意思

/n(斜线) 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:/5 * * * * command用与/5来搭配,也可以写成0-59/5,意思

6.常见的定时任务

1.每分钟定时执行一次规则:
每1分钟执行: */1 * * * *或者* * * * *
每5分钟执行: */5 * * * *

2.每小时定时执行一次规则:
每小时执行: 0 * * * *或者0 */1 * * *
每天上午7点执行:0 7 * * *
每天上午7点10分执行:10 7 * * *

3.每天零点定时执行一次规则:
每天执行 0 0 * * *

4.每周日的零点定时执行一次规则:
每周执行 0 0 * * 0

5.每月一号的零点定时执行一次规则:
每月执行 0 0 1 * *

6.每年一月一号的零点定时执行一次规则:
每年执行 `0 0 1 1 *

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值