mysql数据定时备份

核心命令:path/mysqldump –opt -u数据库账号 -p数据库密码 > 备份文件名

Linux

备份脚本 ( mysql_back.sh):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh

# File: /root/mysql_dump/mysql_back.sh

#tabase info

DB_NAME="数据库名字"

DB_USER="数据库用户"

DB_PASS="数据库密码"

# Others vars

# whereis mysqldump

# IS ` but not '

BIN_DIR="/usr/local/mysql/bin" # mysql 安装bin目录

BCK_DIR="/root/mysql_dump/data" # 备份目录

DATE=`date +%Y%m%d_%H%M%S` # 生成一个时间戳

# TODO

mkdir -p $BCK_DIR # 如果备份目录不存在则创建一个备份目录

# 备份命令

$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql

定时执行脚本:

例如; 每天晚上0点执行

在终端下执行 crontab -e(需要root权限),进入vi编辑窗口,添加一行:

0 0 * * * /root/mysql_dump/mysql_back.sh

Window

备份脚本(mysql_back.bat) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@echo off

:: !/bin/bat

:: File: /root/mysql_dump/mysql_back.bat

:: tabase info

set DB_NAME=com_cms

set DB_USER=root

set DB_PASS=root

:: Others vars

:: mysql 安装目录下的bin

set BIN_DIR=d:/wamp/bin/mysql/mysql5.7.14/bin

:: 备份目录

set BCK_DIR=d:/backup

:: 生成一个时间戳

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

:: TODO 如果备份目录不存在则创建一个备份目录

IF NOT EXIST %BCK_DIR% MD %BCK_DIR%

:: 备份命令

%BIN_DIR%/mysqldump --opt -u%DB_USER% -p%DB_PASS% %DB_NAME% > %BCK_DIR%/%DB_NAME%.dump_%DATE%.sql

定时执行脚本:

1
2
3
4
5
schtasks /create /tn "任务名字" /tr d:/backup/mysql_back.bat /sc daily /st 00:00 /ed 31/12/2017

Set ws = CreateObject("Wscript.Shell")

ws.run "d:/backup/mysql_back",vbhide
关注作者公众号,获取更多资源!
赏作者一杯咖啡~