Ubuntu Server下MySql数据库备份脚本

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介:

说明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期), 最后只保留最近7天的备份。

实现步骤:

1、创建保存备份文件的目录:/home/mysql_data cd /home #进入目录 mkdir mysql_data #创建目录

2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh cd /home/mysql_data #进入目录 touch mysql_databak.sh #创建文件 nano mysql_databak.sh #编辑文件,输入以下内容 ####################################################################################################### #!/bin/sh DUMP=/usr/bin/mysqldump #mysqldump

备份程序执行路径 OUT_DIR=/home/mysql_data

#备份文件存放路径 LINUX_USER=root

#系统用户名 DB_NAME=pw85

#要备份的数据库名字 DB_USER=root

#数据库账号

注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错 DB_PASS=123456 #数据库密码 DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份 cd $OUT_DIR #进入备份存放目录 DATE=`date +%Y_%m_%d` #获取当前系统时间 OUT_SQL="$DATE.sql" #备份数据库的文件名 TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名 $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份 tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式 rm $OUT_SQL #删除.sql格式的备份文件 chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者 find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件(注意:{} \;中间有空格) ####################################################################################################### ctrl+o #保存配置 ctrl+x #退出 系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接 3、修改文件属性,使其可执行 chmod +x /home/mysql_data/mysql_databak.sh 4、修改/etc/crontab nano /etc/crontab #编辑文件,在下面添加 45 22 * * * root /home/mysql_data/mysql_databak.sh #表示每天22点45分执行备份 ctrl+o #保存配置 ctrl+x #退出 5、重新启动crond使设置生效 service cron stop #停止 service cron start #启动 /etc/init.d/cron restart #重启 chkconfig cron on #设为开机启动 系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接 每天你在/home/mysql_data目录下面可以看到类似mysqldata_bak_2012_04_11.tar.gz这样的压缩文件 如果需要恢复文件的时候,只需要把这个文件解压:tar -zxvf mysqldata_bak_2012_04_11.tar.gz 然后导入到数据库中即可。 至此,Ubuntu Server下MySql数据库备份脚本完成。


本文转自    geekwolf   51CTO博客,原文链接:http://blog.51cto.com/linuxgeek/998943

相关文章
|
14天前
|
存储 SQL 关系型数据库
|
15天前
|
关系型数据库 MySQL 数据库
数据迁移脚本优化过程:从 MySQL 到 Django 模型表
在大规模的数据迁移过程中,性能问题往往是开发者面临的主要挑战之一。本文将分析一个数据迁移脚本的优化过程,展示如何从 MySQL 数据库迁移数据到 Django 模型表,并探讨优化前后的性能差异。
|
2天前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
7天前
|
数据库 数据安全/隐私保护
Failed to load resource: the server responded with a status of 404 ()出错的原因是,因为自己调试的时候,设置了与宝塔不一样的数据库
Failed to load resource: the server responded with a status of 404 ()出错的原因是,因为自己调试的时候,设置了与宝塔不一样的数据库
|
7天前
|
Ubuntu 关系型数据库 MySQL
MySQL5.7在Ubuntu安装[单机软件],第一步登录root,sudo su -
MySQL5.7在Ubuntu安装[单机软件],第一步登录root,sudo su -
|
7天前
|
Ubuntu 关系型数据库 MySQL
|
8天前
|
SQL 关系型数据库 MySQL
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
|
9天前
|
关系型数据库 MySQL Go
mysql,数据库Server returns invalid timezone. Go to ‘Advanced‘ tab 数据库的行和列没有出现怎么办p
mysql,数据库Server returns invalid timezone. Go to ‘Advanced‘ tab 数据库的行和列没有出现怎么办p
|
10天前
|
数据库
数据库bug-[08001] Could not create connection to database server. Attempted reconnect 3,主机名ip必须写对
数据库bug-[08001] Could not create connection to database server. Attempted reconnect 3,主机名ip必须写对
|
16天前
|
NoSQL Linux 数据安全/隐私保护
轻松搭建Neo4j图数据库:一步步教你在Docker上安装Neo4j Community Server
轻松搭建Neo4j图数据库:一步步教你在Docker上安装Neo4j Community Server