Mysqldump备份数据库

常用数据库备份工具:
mysqldump:mysql工具包自带(数据库比较小)
xtrabackup:比较好的备份工具(数据库比较大)

备份用户授权:
# select 选择表
# reload 刷新日志
# lock tables 锁表
# show view 视图
# trigger 触发器
###
GRANT SELECT,RELOAD,SHOW VIEW,LOCK TABLES,TRIGGER ON . TO 'dumper'@'localhost' IDENTIFIED BY 'manager1';
GRANT SELECT,RELOAD,SHOW VIEW,LOCK TABLES,TRIGGER ON . TO 'dumper'@'127.0.0.1' IDENTIFIED BY 'manager1';
准备测试数据库:
# mysql > CREATE DATABASE test DEFAULT CHARACTER SET utf8;
# mysql > USE test;
# mysql > SOURCE /root/test.sql;
Mysqldump备份命令:
#mysqldump --user=dumper --password=manager1 --databases test | gzip - | openssl des3 -salt -k manager1 -out /data/backup/test.sql.gz.des3
# mysqldump: [Warning] Using a password on the command line interface can be insecure.
删除测试数据库:
# mysql > DROP DATABASE test;
解密备份文件:
# openssl des3 -d -salt -in test.sql.gz.des3 -out test.sql.gz
# enter des-ede3-cbc decryption password: #输入加密时密码
解压缩备份文件:
# gunzip test.sql.gz
恢复备份文件:(mysqldump备份会从最开始创建数据库的时候备份,所以无需提前创建数据库,亦可cat sql文件开头检查sql语句)
# mysql -u root -hlocalhost -p < test.sql
# Enter password: #输入root用户密码
连接Mysql检查数据库是否已经恢复

编写简单备份脚本:
1、mysqldump备份数据库
2、备份文件采用gzip压缩,并且采用3des加密
3、备份文件留存7天,自动进行删除
4、每天晚上2点准时开始备份
#!/bin/bash
#
BACKDIR=/data/backup/mysql
MYSQLDUMP=/usr/local/mysql5.7/bin/mysqldump
DATEFORMAT=$(date +%Y%m%d%H%M)
DBNAME="test mysql"
BACKUSER=dumper
BACKPASSWD=manager1
LOG=/data/backup/mysql/backup.log
[ -d $BACKDIR ] || mkdir -p $BACKDIR
[ -f $LOG ] && touch $LOG
#
find "$BACKDIR" -name "mysql-20*" -type f -mmin +3|xargs rm -rf
[ $? -eq 0 ] && echo -e "${DATEFORMAT} Delete 7 days ago backup file success" || echo -e "${DATEFORMAT} Delete Old backup file failure"
#
for DB in $DBNAME ;do
$MYSQLDUMP --user=$BACKUSER --password=$BACKPASSWD --routines --triggers --single-transaction --flush-logs --databases ${DB} | gzip - | openssl des3 -salt -k manager1 -out ${BACKDIR}/mysql-${DATEFORMAT}-${DB}.sql.gz.des3
[ $? -eq 0 ] && echo -e "${DATEFORMAT} mysqldump database ${DB} backup success" >> $LOG || echo -e "${DATEFORMAT} mysqldump database ${DB} backup failure" >> $LOG
done
#
crontab -e
0 2 * * * /bin/bash /root/script/mysql_backup.sh


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文/Bruce.Liu1 文章大纲备份概念1.1. 备份目的1.2. 备份方式1.3. 备份类型1.4. 备份对象...
    BruceLiu1阅读 9,293评论 4 15
  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 12,233评论 0 46
  • MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use...
    55lover阅读 10,312评论 1 57
  • 试举例分析《诗经》六义之首“风”的含义 言其作用,“风”者,风谏也、风教也。言其本源,“风”者,土风也、风谣也,今...
    屡空阅读 22,387评论 1 7
  • “小朋友说明天要语文测验,怕万一考砸了影响心情,提早一天过个生日。” 好友的朋友圈赫赫然地出现了这样一条动态。动态...
    苏寂然阅读 2,833评论 4 2