欢迎访问web学习网
当前位置:主页 > Mysql > 正文

mysql数据库自动备份

09-14 Mysql

通过简单的设置,可以让MySQL数据库备份自动化.

减少维护的工作量!

一、对于Windows主机

==============

假想环境:

mysql 安装位置:C:\MySQL

论坛数据库名称为:bbs

MySQL root 密码:123456

数据库备份目的地:D:\db_backup\

@echo off

C:\MySQL\bin\mysqladmin -u root –password=123456 shutdown

C:\MySQL\bin\mysqldump –opt -u root –password=123456 bbs > D:\db_backup\bbs.sql

C:\MySQL\bin\mysqld-nt

将以上代码保存为backup_db.bat

然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)

二、对于Linux主机

vim /usr/local/sbin/mysql_back.sh

#!/bin/bash
#user=""
#password="" mysql5.7在my.cnf里面mysqldump指定,不需要在这里指定
db_name="test"
#备份目录
backup_path="/data/mysql_back"
#时间命名
date="$(date +%Y_%m_%d_%H_%M_%S)"
# 备份数据库到SQL文件
#mysqldump -u$user  -p$password $db_name | gzip > $backup_path/$db_name$date.sql.gz
mysqldump $db_name | gzip > $backup_path/$db_name$date.sql.gz

find $backup_path -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1  
#删除7天以上的文件
#find $backup_path -name $db_name"*.sql.gz" -type f -mmin +20 -exec rm -rf {} \; > /dev/null 2>&1
 

chmod 777 /usr/local/sbin/mysql_back.sh

mysqldump导出时加gzip压缩:

mysqldump -uusername -ppassword databasename | gzip > backupfile.sql.gz(看Mysql版本,5.7 -u -p参数不需要在这里加,同上)
 
gunzip解压:
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

如不需压缩可以直接mysqldump

mysqldump -uusername -ppassword test >/data/mysql_back/$(date +%Y_%m_%d_%H_%M_%S).sql
mysql -uusername -ppassword test </data/mysql_back/2017_09_14_15_45_02.sql


加入crontab中自动执行:

crontab -e

加入:

10 * * * * /usr/local/sbin/mysql_back.sh


文章来源: 网络
打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦