Home > Database > Mysql Tutorial > Linux下MySQL备份以及crontab定时备份_MySQL

Linux下MySQL备份以及crontab定时备份_MySQL

WBOY
Release: 2016-06-01 13:17:26
Original
879 people have browsed it

1. 备份某个数据库

################################################################### 备份某个数据库################################################################### root 用户,创建备份目录mkdir -p /usr/local/cncounter/mysql_dumpcd /usr/local/cncounter/mysql_dump# 导出数据库,热备mysqldump -u root -pmypasssecret cncounter > cncounter_dump.sql.20140414_1333
Copy after login

2. 还原某个数据库

################################################################### 还原某个数据库################################################################### 修改密码# mysqladmin -u root password "mypasssecret"# mysqladmin -u root password oldpass "mypasssecret"# 登录mysql -u root -pmypasssecret-- 热备只是备份数据库内部的表,以及数据use cncounter;source /usr/local/cncounter/mysql_dump/cncounter_dump.sql.20140414_1333;exit;
Copy after login
3. crontab 定时备份

3.1 编辑备份脚本

################################################################### crontab 定时备份################################################################### # root 用户,创建执行脚本mkdir -p /root/mysql_dump/datacd /root/mysql_dumptouch mysql_back.shchmod 755 mysql_back.sh# 编辑备份脚本vim mysql_back.sh################下面是备份脚本的内容#!/bin/sh# File: /root/mysql_dump/mysql_back.sh# Database infoDB_NAME="cncounter"DB_USER="root"DB_PASS="mypasssecret"# Others vars# whereis mysqldump# IS ` but not 'BIN_DIR="/usr/bin"BCK_DIR="/root/mysql_dump/data"DATE=`date +%Y%m%d_%H%M%S`# TODOmkdir -p $BCK_DIR$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME / > $BCK_DIR/$DB_NAME.dump_$DATE.sql
Copy after login

当然,执行的脚本也可以不用那么灵活: 其中行末尾的 反斜线(/) 的意思是shell 指令换行,如果写在单行内部,就不再需要.

/usr/bin/mysqldump --opt -uroot -pmypasssecret cncounter /> /root/mysql_dump/data/cncounter.dump_`date +%Y%m%d_%H%M%S`.sql
Copy after login
3.2 添加到crontab
# 添加到crontabcrontab -e# 添加一行,root用户不需要指定执行的用户名,ESC,wq1 1 * * * /root/mysql_dump/mysql_back.sh# 不一定需要重启crontab服务# service crond restart
Copy after login
3.3 crontab 简单说明
# cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# |  .------------- hour (0 - 23)# |  |  .---------- day of month (1 - 31)# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# |  |  |  |  |# *  *  *  *  * user-name command to be executed
Copy after login
可以发现,crontab 的执行周期有5个部分组成,其中第一个是分钟数,第二个是小时数,第三个是一个月中的第几天。。。 如果是 * 就表示每天都会调度。

user-name 部分,如果需要以其他用户调度,则可以指定,否则不能指定,比如 root 用户就不能指定 root,否则有调度日志,但是没有实际执行。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template