#!/bin/bash
# MYSQLDBUSERNAME是MySQL数据库的用户名,可自定义
MYSQLDBUSERNAME=root
# MYSQLDBPASSWORD是MySQL数据库的密码,可自定义
MYSQLDBPASSWORD=password
# MYSQBASEDIR是MySQL数据库的安装目录,--prefix=$MYSQBASEDIR,可自定义
MYSQBASEDIR=/usr/local/mysql
# MYSQL是mysql命令的绝对路径,可自定义
MYSQL=$MYSQBASEDIR/bin/mysql
# MYSQLDUMP是mysqldump命令的绝对路径,可自定义
MYSQLDUMP=$MYSQBASEDIR/bin/mysqldump
# BACKDIR是数据库备份的存放地址,可以自定义修改成远程地址
BACKDIR=/var/backup/db
# 获取当前时间,格式为:年-月-日,用于生成以这种时间格式的目录名称
DATEFORMATTYPE1=$(date +%Y-%m-%d)
# 获取当前时间,格式为:年月日时分秒,用于生成以这种时间格式的文件名称
DATEFORMATTYPE2=$(date +%Y%m%d%H%M%S)
# 如果存在MYSQBASEDIR目录,则将MYSQDATADIR设置为$MYSQBASEDIR/data,具体是什么路径,就把data改成什么路径,否则将MYSQBASEDIR设定为/var/lib/mysql,可自定义
[ -d $MYSQBASEDIR ] && MYSQDATADIR=$MYSQBASEDIR/data || MYSQDATADIR=/var/lib/mysql
# 如果mysql命令存在并可执行,则继续,否则将MYSQL设定为mysql,默认路径下的mysql
[ -x $MYSQL ] || MYSQL=mysql
# 如果mysqldump命令存在并可执行,则继续,否则将MYSQLDUMP设定为mysqldump,默认路径下的mysqldump
[ -x $MYSQLDUMP ] || MYSQLDUMP=mysqldump
# 如果不存在备份目录则创建这个目录
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
[ -d ${BACKDIR}/${DATEFORMATTYPE1} ] || mkdir ${BACKDIR}/${DATEFORMATTYPE1}
# 获取MySQL中有哪些数据库,根据mysqldatadir下的目录名字来确认,此处可以自定义,TODO
DBLIST=`ls -p $MYSQDATADIR | grep / |tr -d /`
# 从数据库列表中循环取出数据库名称,执行备份操作
for DBNAME in $DBLIST# mysqldump skip one table# -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.# mysqldump --ignore-table=mysql.event# http://serverfault.com/questions/376904/mysqldump-skip-one-table# --routines,备份存储过程和函数# --events,跳过mysql.event表# --triggers,备份触发器# --single-transaction,针对InnoDB,在单次事务中通过转储所有数据库表创建一个一致性的快照,此选项会导致自动锁表,因此不需要--lock-all-tables# --flush-logs,在dump转储前刷新日志# --ignore-table,忽略某个表,--ignore-table=database.table# --master-data=2 ,如果启用MySQL复制功能,则可以添加这个选项# 将dump出的sql语句用gzip压缩到一个以时间命名的文件do ${MYSQLDUMP} --user=${MYSQLDBUSERNAME} --password=${MYSQLDBPASSWORD} --routines --events --triggers --single-transaction --flush-logs --ignore-table=mysql.event --databases ${DBNAME} | gzip > ${BACKDIR}/${DATEFORMATTYPE1}/${DBNAME}-backup-${DATEFORMATTYPE2}.sql.gz# 检查执行结果,如果错误代码为0则输出成功,否则输出失败[ $? -eq 0 ] && echo "${DBNAME} has been backuped successful" || echo "${DBNAME} has been backuped failed"# 等待5s,可自定义/bin/sleep 5
done

执行结果:

[root@htvm ~]# ./backupmysqlbydate.sh
mysql has been backuped successful
test has been backuped successful
[root@htvm ~]# ls /var/backup/db/2015-07-27/
mysql-backup-20150727195515.sql.gz  test-backup-20150727195515.sql.gz
[root@htvm ~]#

明细命令:

Mysql之dump数据备份命令大全 - 哔哩哔哩

mysqldump数据备份相关推荐

  1. mysql dump 增量_mysql mysqldump数据备份和增量备份

    本篇文章主要讲如何使用shell实现MysqL全量,增量备份.增量备份在周一-周六凌晨3点,会复制MysqL-bin.00000*到指定目录:而全量备份则使用MysqLdump将所有的数据库导出,每周 ...

  2. Winform中实现连接Mysql8使用mysqldump实现备份表的数据

    场景 Winform中连接Mysql8并查询表中数据进行显示: Winform中连接Mysql8并查询表中数据进行显示_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面实现连接Mys ...

  3. mysqldump 常用备份选项,只备份数据或结构的方法

    mysqldump 常用备份选项,只备份数据或结构的方法, 常见选项: --all-databases, -A: 备份所有数据库 --databases, -B: 用于备份多个数据库,如果没有该选项, ...

  4. mysqldump 定时备份数据(全量)

    MYSQL 数据库备份有很多种(cp.tar.lvm2.mysqldump.xtarbackup)等等,具体使用哪一个还要看你的数据规模.下面给出一个表 #摘自<学会用各种姿态备份Mysql数据 ...

  5. mysqldump实现数据备份及灾难恢复

    目录 1.测试环境介绍 2.备份策略 3.备份 4.灾难恢复 5.总结 1.测试环介绍 mysql> SELECT VERSION(); +------------+ | VERSION() | ...

  6. 04-mysql数据备份之mysqldump命令详解

    MYSQL数据备份之mysqldump命令详解 一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数 ...

  7. mysqldump命令备份数据 mysql备份数据

    一. mysqldump命令备份数据 二. mysqldump常用操作示例 三. 还原 MySQL 备份内容 1.编写BASH维护固定数量备份文件 2.使用crontab定期执行备份脚本 2.1 cr ...

  8. MYSQL数据备份之mysqldump命令详解(附脚本定时备份)

    一.常见备份命令介绍 备份命令 备份速度 恢复速度 介绍 功能 一般用于 cp 快 快 物理备份.灵活性低 很弱 少量数据备份 mysqldump 慢 慢 逻辑备份.适用所有存储引擎 一般 中小型数据 ...

  9. mysql 数据备份(mysqldump)

    mysql 数据备份(mysqldump) ************************* mysqldump 使用 命令格式 root@7a72b2ffd688:/# mysqldump --h ...

最新文章

  1. Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
  2. SQL Server 2005 For XML[学习]
  3. Android 获取系统或SDCARD剩余空间信息
  4. 被骂了三年,谷歌Dropout专利还是生效了,卡脖子预警
  5. vim在每行行首或行尾添加/删除内容
  6. VIP - virtual IP address
  7. 基本配置2-被忽悠进了CentOS 6
  8. 小甲鱼OD学习第15-16讲
  9. Python精通-Python字符串格式化操作
  10. 做空指控不成立 百度收购YY直播已基本完成
  11. 杭电1466计算直线的交点数
  12. Linux中脚本的使用方法
  13. oracle中rollup函数与mysql中with rollup区别
  14. 十三届蓝桥杯EDA省赛赛后感
  15. Spring Bean的作用域
  16. 免费好用的节假日API
  17. vc 判断哪个按键 被按下 消息 按键 状态
  18. 心知天气天气状况获取,ESP32获取天气信息(含源码)
  19. 测试人生 | 疫情之下工资翻了2倍多,这4个月学习比工作8年学到的还多
  20. 图像的上采样(upsampling)与下采样(subsampled)

热门文章

  1. 对于计算机病毒的潜伏性正确的说法是,对于计算机病毒的潜伏性,正确的说法是()...
  2. 火狐浏览器Firefox如何导出导入书签页
  3. python3.7中RSA加密遇到的问题
  4. nginx 正反向代理
  5. 用c语言处理bmp开运算,c语言解析bmp图片
  6. linux数据泄露,Linux Kernel 5.9.1 及更早版本发现数据泄露和特权升级漏洞,需尽快升级...
  7. python里class转换_python实现class对象转换成json/字典的方法
  8. 用html5构建兼容iE6的网页
  9. HTML弹性布局基础讲解(一)
  10. LVS负载均衡之DR模式