ubuntu 定时备份mysql,ubuntu下mysql定时备份
一:ubuntu下自动备份mysql数据库
1、创建保存备份文件的目录:/home/mysql_data
sudo mkdir mysql_data
2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh
touch mysql_databak.sh#创建文件 sudo vi mysql_databak.sh#编辑文件
3、代码如下
#!/bin/sh
DUMP=/usr/bin/mysqldump
OUT_DIR=/home/mysql_data
LINUX_USER=root
DB_NAME=jqg2
DB_USER=root
DB_PASS=123456
DAYS=7
cd $OUT_DIR
DATE=date +%Y%m%d%H%M
OUT_SQL=$DATE.sql
TAR_SQL="mysqldata_bak_$DATE.tar.gz"
DUMP -uDB_USER -pDB_PASS DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables>$OUT_SQL
tar -czf TAR_SQL ./OUT_SQL
rm $OUT_SQL
chown LINUX_USER:LINUX_USER OUT_DIR/TAR_SQL
find OUT_DIR -name "mysqldata_bak*" -type f -mtime +DAYS -exec rm {} ;
代码解释:
#!/bin/sh
DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径
OUT_DIR=/home/mysql_data #备份文件存放路径
LINUX_USER=root #系统用户名
DB_NAME=jqg2 #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要使用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表要删除7天前的备份,即只保留最近7天的备份
cd $OUT_DIR #进入备份存放的目录
DATE=date +%Y%m%d%H%M #获取当前系统的时间,注意:date写法
OUT_SQL=$DATE.sql #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
DUMP -uDB_USER -pDB_PASS DB_NAME --default-character-set=gbk --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天前的备份文件,注意:{} ;中间有空格:wq 保存退出
4、修改文件属性,使其可执行
sudo chmod +x /home/mysql_data/mysql_databak.sh
5、修改/etc/crontab
vi crontab 在其文件内添加
45 22 * * * root /home/mysql_data/mysql_databak.sh #表示每天22点45分执行备份
6、重新启动crond使设置生效
service cron stop #停止 service cron start #启动 /etc/init.d/cron restart #重启
7、设为开机启动:
ubuntu系统不用执行这个命令
chkconfig cron on #设为开机启动
二:脚本文件另外写法:
#!/bin/sh
DB_NAME=""
DB_USER=""
DB_PASSWD=""
BIN_DIR="/opt/lampp/bin/"# mysql 执行文件目录
TEMP_DIR="/opt/lampp/db_backup/${DB_NAME}/"
BACKUP_DIR="/opt/lampp/db_backup/${DB_NAME}_db_backup/"
DATE=`date +%Y%m%d_%H%M%S`
rm -rf ${TEMP_DIR}
[ -d ${TEMP_DIR} ] || mkdir ${TEMP_DIR}
[ -d ${BACKUP_DIR} ] || mkdir ${BACKUP_DIR}
#delete files over 10 days
find ${BACKUP_DIR} -mtime +10 -exec rm -rf {} \;
#back db
# 日志选项暂未打开 --flush-logs --master-data=2
${BIN_DIR}mysqldump -u${DB_USER} -p${DB_PASSWD} ${DB_NAME} --lock-all-tables > ${TEMP_DIR}db_backup_${DB_NAME}_${DATE}.sql
cp ${TEMP_DIR}db_backup_${DB_NAME}_${DATE}.sql ${BACKUP_DIR}db_backup_${DB_NAME}_${DATE}.sql
ubuntu 定时备份mysql,ubuntu下mysql定时备份相关推荐
- mysql在linux下备份还原,Linux下MySQL的备份与还原
Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...
- ubuntu安装与配置mysql_ubuntu下mysql的安装与配置
安装MySQL sudo apt-get install mysql-server 这个应该很简单了,而且我觉得大家在安装方面也没什么太大题目,所以也就未几说了,下面我们来讲讲配置. 配置MySQL ...
- win+mysql自动备份吗_Windows下mysql自动备份的最佳方案
网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...
- centos下mysql常用的三种备份方法_centos下mysql自动备份(全量)
1.新建mysql的备份目录mkdir -p path/mysql/backup/ 2.新建备份脚本vi path/mysql/backup/backup.sh #!/bin/bash backupd ...
- linux mysql 备份脚本_linux下mysql备份脚本
#!/bin/bash #功能说明:本功能用于备份 #编写日期:2018/07/05 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/lo ...
- centos mysql root_CentOS下MySQL忘记root密码解决方法
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...
- [Linux Mysql] Linux下Mysql的基本操作
1. 连接Mysql 1.1 连接到本机上的Mysql 键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码 ...
- linux ljie mysql_[Linux Mysql] Linux下Mysql的基本操作
1. 连接Mysql 1.1 连接到本机上的Mysql 键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码 ...
- mysql pkg_Solaris10下mysql的pkg安装方法
以root登录系统 1从dev.mysql.com网站下载安装文件mysql-5.1.11-beta-solaris10-sparc-64bit.pkg.gz保存到/tmp 2解压缩gz格式安装文件g ...
- mysql 1607_Windows下Mysql启动“服务名无效”及“系统错误1607”解决办法
标签: 1.服务名无效 输入net start mysql, 报错"服务名无效" 解决: 进入Mysql安装的bin目录,例如"C:\Program Files (x86 ...
最新文章
- 为什么机器学习项目非常难管理?
- junit配合catubuter统计单元测试的代码覆盖率
- Keras中神经网络可视化模块keras.utils.vis_util 的安装
- 模板引擎--handlebars
- Linux下触摸屏驱动程序分析
- android excel 筛选功能,Android实现Excel表格展示数据
- Linux登陆Mariadb数据库,Mariadb数据库的远程连接(centos 7+ Navicat)
- 关于Android 中 一个错误的解决办法 “Do not request Window.FEATURE_ACTION_BAR.....
- ArcGIS AO中控制图层中要素可见状态的总结
- UVA 11038 How Many O's?
- 电脑存储:A盘、B盘知识介绍,为何总是电脑磁盘从C盘开始?
- JAXB和java.util.Map
- Hibernate 学习(一)
- Spring Boot学习总结(24)——Spring Boot 2.5 新特性一览
- SQL Server数据库迁移最佳实践,可降低风险和停机时间
- 交叉验证与训练集、验证集、测试集
- 图形界面下,如何查看LINUX隐藏的文件、目录
- img 图片找不到时,设置显示默认图片
- 作为一个开发者,我创业了
- 基于华为eNSP的企业网络规划