Linux下mysql自动备份压缩
2017-12-29 11:15
316 查看
本文要实现的内容
自动备份mysql指定的数据库
压缩备份的数据库
删除旧有的备份(7天前)
实现是方法编写一个备份脚本,然后使用crontab定时执行脚本达到自动备份的目的。
本次配置的环境目录如下:
2
3
4
环境介绍完毕,下面正式开始
2
3
4
使用mysqldump -u root -proot test_db > /app/deploy/backup/mysql/backup.sql 会报以下错误:
直接在命令行填写明文密码是不安全的,容易被系统其它用户窃取。这是mysql为了安全性作出的一种专制,官方也对这种情况作出了说明:
http://dev.mysql.com/doc/refman/5.7/en/password-security-user.html
这个种情况下,官方也给出了解决方法,那就是增加配置文件里的[client]中的内容。
vi /etc/my.cnf
加入以下内容
2
3
4
这时候可用以下命令进行备份
脚本内容如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
加入以下内容
2
自动备份mysql指定的数据库
压缩备份的数据库
删除旧有的备份(7天前)
实现是方法编写一个备份脚本,然后使用crontab定时执行脚本达到自动备份的目的。
本次配置的环境目录如下:
mysql安装目录: /usr/local/mysql mysql备份目录: /app/deploy/backup/mysql mysql配置文件: /etc/my.cnf 备份shell文件: /usr/local/bin/mysql-data-backup.sh1
2
3
4
环境介绍完毕,下面正式开始
1、新建备份脚本
mkdir -p /app/deploy/backup/mysql #新建数据备份所在目录 ln -s /usr/local/mysql/bin/mysqldump /usr/local/bin #创建备份执行程序的软链接 touch /usr/local/bin/mysql-data-backup.sh chmod +x /usr/local/bin/mysql-data-backup.sh #增加脚本的执行权限1
2
3
4
2、配置mysql的[client]选项
使用mysqldump -u root -proot test_db > /app/deploy/backup/mysql/backup.sql 会报以下错误:Warning: Using a password on the command line interface can be insecure.1
直接在命令行填写明文密码是不安全的,容易被系统其它用户窃取。这是mysql为了安全性作出的一种专制,官方也对这种情况作出了说明:
http://dev.mysql.com/doc/refman/5.7/en/password-security-user.html
这个种情况下,官方也给出了解决方法,那就是增加配置文件里的[client]中的内容。
vi /etc/my.cnf
加入以下内容
[client] host=localhost user=root password=root1
2
3
4
这时候可用以下命令进行备份
mysqldump --defaults-extra-file=/etc/my.cnf test_db > /app/deploy/backup/mysql/backup.sql1
3、编写备份脚本
vi /usr/local/bin/mysql-data-backup.sh1
脚本内容如下:
#!/bin/bash #description: mysql-data automatically backup script # 文件名为test_db+日期 backupDatabase=test_db fileName=${backupDatabase}`date +%Y%m%d` # 定义baseDir变量 baseDir=/app/deploy/backup/mysql/ # 备份数据库 mysqldump --defaults-extra-file=/etc/my.cnf ${backupDatabase} > ${baseDir}${fileName}.sql # 压缩 tar -zcPvf ${baseDir}${fileName}.sql.tar.gz ${baseDir}${fileName}.sql # 删除刚刚备份的sql文件,留下压缩的 rm -f ${baseDir}${fileName}.sql; # 删除7天前备份的数据,只保留一星期内的数据 find ${baseDir} -mtime +7 -name "${backupDatabase}*.tar.gz" -exec rm -rf {} \;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
4、编写定时任务
vi /var/spool/cron/crontabs/root1
加入以下内容
# 每天的23时59分进行备份(使用/bin/bash解析器运行脚本) 59 23 * * * /bin/bash /usr/local/bin/mysql-data-backup.sh1
2
相关文章推荐
- Linux下mysql自动备份压缩
- Linux自动备份压缩MySQL数据库的实用方法
- Linux下定时任务实现mysql自动备份并上传远程ftp
- Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
- Linux 自动备份mysql数据
- mysql备份并自动压缩命令
- linux下mysql自动备份
- Linux下自动备份MySQL的方法
- linux下mysql自动备份脚本代码
- Linux 下Mysql自动备份脚本
- [转载]linux下mysql 自动备份
- 自动备份MYSQL方法 (Linux)
- linux下自动备份MySQL数据并上传到FTP上的shell脚本
- Linux自动备份MYSQL方法
- linux备份和mysql登陆自动输入密码
- linux(CentOS) 下mysql与代码自动备份与清理
- Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份
- linux mysql自动备份脚本改写实现
- Linux下自动备份MySQL的方法
- linux下mysql自动备份脚本