一: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定时备份相关推荐

  1. mysql在linux下备份还原,Linux下MySQL的备份与还原

    Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...

  2. ubuntu安装与配置mysql_ubuntu下mysql的安装与配置

    安装MySQL sudo apt-get install mysql-server 这个应该很简单了,而且我觉得大家在安装方面也没什么太大题目,所以也就未几说了,下面我们来讲讲配置. 配置MySQL ...

  3. win+mysql自动备份吗_Windows下mysql自动备份的最佳方案

    网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...

  4. centos下mysql常用的三种备份方法_centos下mysql自动备份(全量)

    1.新建mysql的备份目录mkdir -p path/mysql/backup/ 2.新建备份脚本vi path/mysql/backup/backup.sh #!/bin/bash backupd ...

  5. linux mysql 备份脚本_linux下mysql备份脚本

    #!/bin/bash #功能说明:本功能用于备份 #编写日期:2018/07/05 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/lo ...

  6. centos mysql root_CentOS下MySQL忘记root密码解决方法

    1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...

  7. [Linux Mysql] Linux下Mysql的基本操作

    1. 连接Mysql 1.1 连接到本机上的Mysql 键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码 ...

  8. linux ljie mysql_[Linux Mysql] Linux下Mysql的基本操作

    1. 连接Mysql 1.1 连接到本机上的Mysql 键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码 ...

  9. mysql pkg_Solaris10下mysql的pkg安装方法

    以root登录系统 1从dev.mysql.com网站下载安装文件mysql-5.1.11-beta-solaris10-sparc-64bit.pkg.gz保存到/tmp 2解压缩gz格式安装文件g ...

  10. mysql 1607_Windows下Mysql启动“服务名无效”及“系统错误1607”解决办法

    标签: 1.服务名无效 输入net start mysql, 报错"服务名无效" 解决: 进入Mysql安装的bin目录,例如"C:\Program Files (x86 ...

最新文章

  1. 为什么机器学习项目非常难管理?
  2. junit配合catubuter统计单元测试的代码覆盖率
  3. Keras中神经网络可视化模块keras.utils.vis_util 的安装
  4. 模板引擎--handlebars
  5. Linux下触摸屏驱动程序分析
  6. android excel 筛选功能,Android实现Excel表格展示数据
  7. Linux登陆Mariadb数据库,Mariadb数据库的远程连接(centos 7+ Navicat)
  8. 关于Android 中 一个错误的解决办法 “Do not request Window.FEATURE_ACTION_BAR.....
  9. ArcGIS AO中控制图层中要素可见状态的总结
  10. UVA 11038 How Many O's?
  11. 电脑存储:A盘、B盘知识介绍,为何总是电脑磁盘从C盘开始?
  12. JAXB和java.util.Map
  13. Hibernate 学习(一)
  14. Spring Boot学习总结(24)——Spring Boot 2.5 新特性一览
  15. SQL Server数据库迁移最佳实践,可降低风险和停机时间
  16. 交叉验证与训练集、验证集、测试集
  17. 图形界面下,如何查看LINUX隐藏的文件、目录
  18. img 图片找不到时,设置显示默认图片
  19. 作为一个开发者,我创业了
  20. 基于华为eNSP的企业网络规划

热门文章

  1. ADS2017破解后重启显示license失效,需要把EESoft Flexnet Licence Server启动类型设置为自动
  2. Cat8 八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
  3. matlab转置与共轭转置
  4. 既有e^x又有sinx或cosx的积分题的解法
  5. IOS视频播放器VKVideoPlayer简单教程
  6. Java性能优化的50个细节(珍藏版)
  7. 微信模拟器不显示鼠标解决办法
  8. 电源层和地线层完整性规则_射频电路设计实例以及一些经常遇见的问题
  9. 初学者学习数据库的三个方向
  10. 用树莓派制作智能小车