首页 >

Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

数据库|mysql教程Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
mysqldump备份MySQL数据库,mysqldump,
数据库-mysql教程
百度网盘音乐外链源码,vscode用户首选,怎样检测ubuntu系统串口,tomcat配置设置,sqlite 重置自增,页面模板插件没有显示,前端运用的代码框架,爬虫ip是什么,php 字符比较,seo站群是什么,后台管理网站模板打开,可爱网页按钮素材,静态系统模板,js 下载 当前页面,开源网站后台管理系统,简单收到视频程序源码lzw
利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使用)
成熟电子病历系统源码,vscode无法初始化设备,ubuntu 路由保存,如何加载tomcat中,爬虫抓取 乱码,php简历工作描述,seo排名优化公司地址lzw
诱导下载页源码,ubuntu 内存不释放,tomcat能跟mq集成吗,网贷之家 爬虫,杭州php技术培训交流,商虎seolzw

设计该脚本的一些设计、编写考虑:

利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使用)

#!/bin/bash
MYSQLDBUSERNAME=root
MYSQLDBPASSWORD=password
MYSQBASEDIR=/usr/local/mysql
MYSQL=$MYSQBASEDIR/bin/mysql
MYSQLDUMP=$MYSQBASEDIR/bin/mysqldump
BACKDIR=/var/backup/db
DATEFORMATTYPE1=$(date +%Y-%m-%d)
DATEFORMATTYPE2=$(date +%Y%m%d%H%M%S)
[ -d $MYSQBASEDIR ] && MYSQDATADIR=$MYSQBASEDIR/data || MYSQDATADIR=/var/lib/mysql
[ -x $MYSQL ] || MYSQL=mysql
[ -x $MYSQLDUMP ] || MYSQLDUMP=mysqldump
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
[ -d ${BACKDIR}/${DATEFORMATTYPE1} ] || mkdir ${BACKDIR}/${DATEFORMATTYPE1}
DBLIST=`ls -p $MYSQDATADIR | grep / |tr -d /`
for DBNAME in $DBLIST
do ${MYSQLDUMP} –user=${MYSQLDBUSERNAME} –password=${MYSQLDBPASSWORD} –routines –events –triggers –single-transaction –flush-logs –databases ${DBNAME} | gzip > ${BACKDIR}/${DATEFORMATTYPE1}/${DBNAME}-backup-${DATEFORMATTYPE2}.sql.gz
[ $? -eq 0 ] && echo “${DBNAME} has been backuped successful” || echo “${DBNAME} has been backuped failed”
/bin/sleep 5
done

利用mysqldump命令备份MySQL数据库的脚本(带注释版,适合学习和测试使用)

#!/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
#
# –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 ~]#

标签:mysqldump,备份MySQL数据库,MySQL数据库备份,mysql备份,mysql备份脚本

–end–

使用mysqldump进行MariaDB 的备份

使用mysqldump导出数据库

基于mysqldump快速搭建从库

恢复mysqldump创建的备份集

使用mysqldump命令行工具创建逻辑备份

本文永久更新链接地址:


Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
  • linux下改良版本mysqldump来备份MYSQL数据库
  • linux下改良版本mysqldump来备份MYSQL数据库 | linux下改良版本mysqldump来备份MYSQL数据库 ...

    Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
  • [MySQL FAQ]系列 -- mysqldump选项之skip-opt
  • [MySQL FAQ]系列 -- mysqldump选项之skip-opt | [MySQL FAQ]系列 -- mysqldump选项之skip-opt ...

    Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
  • mysqldump命令导入导出数据库方法与实例汇总【MySQL】
  • mysqldump命令导入导出数据库方法与实例汇总【MySQL】 | mysqldump命令导入导出数据库方法与实例汇总【MySQL】 ...