my.cnf
[mysqldump]
user=xxxx
password=xxxx
#!/bin/bash# 以下配置信息请自己修改
mysql_container="" # MySQL容器名称
#mysql_user="" #MySQL备份用户
#mysql_password="" #MySQL备份用户的密码
mysql_host=localhost
mysql_port=3306
mysql_charset="utf8mb4" #MySQL编码
backup_db_arr=("db1" "db2") #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
backup_location=/home/mysql/backup  #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
expire_backup_delete="ON" #是否开启过期备份删除 ON为开启 OFF为关闭
expire_days=30 #过期时间天数 默认为三天,此项只有在expire_backup_delete开启时有效# 本行开始以下不需要修改
backup_time=`date +%Y%m%d%H%M`  #定义备份详细时间
backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间
backup_3ago=`date -d '15 days ago' +%Y-%m-%d` #3天之前的日期
backup_dir=$backup_location/$backup_Ymd  #备份文件夹全路径
welcome_msg="Welcome to use MySQL backup tools!" #欢迎语# 判断MYSQL是否启动,mysql没有启动则备份退出
mysql_ps=`ps -ef |grep mysql |wc -l`
mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; thenecho "ERROR:MySQL is not running! backup stop!"exit
elseecho $welcome_msg
fi# 连接到mysql数据库,无法连接则备份退出
# mysql -h$mysql_host -P$mysql_port <<end
#systemctl restart mysqld <<end
#docker exec -it $mysql_container mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <<end
#use mysql;
#select host,user from user where user='root' and host='localhost';
#exit
#end#flag=`echo $?`
flag=0
if [ $flag != "0" ]; thenecho "ERROR:Can't connect mysql server! backup stop!"exit
elseecho "MySQL connect ok! Please wait......"# 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份if [ "$backup_db_arr" != "" ];then#dbnames=$(cut -d ',' -f1-5 $backup_database)#echo "arr is (${backup_db_arr[@]})"for dbname in ${backup_db_arr[@]}doecho "database $dbname backup start..."`mkdir -p $backup_dir`#`mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`# 此处不要用 -t, 会导致备份文件为空`docker exec -i $mysql_container mysqldump $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`flag=`echo $?`if [ $flag == "0" ];thenecho "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"elseecho "database $dbname backup fail!"fidone# 传输到其他服务器,需要将本机ssh.id_pub 拷贝至目标服务器# 如果ipv6地址,请使用 \[2001::1\]#`scp -r $backup_dir backup@ipaddr:/home/backup/mysqlbackup`#flag=`echo $?`#if [ $flag == "0" ];then# echo "$backup_dir transport complete!"#else#  echo "$backup_dir transport failed!"#fielseecho "ERROR:No database to backup! backup stop"exitfi# 如果开启了删除过期备份,则进行删除操作if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then#`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;``find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`echo "Expired backup data delete complete!"fiecho "All database backup success! Thank you!"echo "------------ $backup_Ymd ----------------"echo "-----------------END---------------------"exit
fi
解压 xxx.sql.gzgzip -d xxx.sql.gz

【Mysql Docker】备份 docker mysql 脚本相关推荐

  1. MySQL定时备份与清除脚本

    前言: 为了避免数据库故障导致数据丢失,我们需要定期备份数据库中数据.这样可以减少数据的丢失.提高数据的安全性,具体操作如下: 正文: 这里主要使用mysqldump备份命令编写的脚本完成备份操作,然 ...

  2. MySQL 数据库备份一键执行脚本 --- 全库备份和增量备份

    文章目录 1. 全库备份 2. 增量备份 3. 开启定时任务 1. 全库备份 vim all_db_bak.sh#!/bin/bash #MySQL 全库备份PATH="/usr/local ...

  3. mysql 自动备份_windows mysql 自动备份的几种方法

    1.复制date文件夹备份 ============================ 假想环境: MySQL   安装位置:C:\MySQL 论坛数据库名称为:bbs 数据库备份目的地:C:\db_b ...

  4. windows mysql 自动备份_windows mysql 自动备份的几种方法总结--岁月博客提供

    因为管理几台windows网站服务器,需要定时对mysql进行备份,每次都是手动,也经常忘记,所以就尝试了各种自动备份方法,网上也有安装mysql自动备份软件,尝试过不太好用.这里总结下通过bat+定 ...

  5. mysql 权限 备份还原,MYSQL学习笔记09:备份还原,用户权限,外键

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 整个数据库数据备份也称为sql数据备份:备份的结果都是sql指令 在mysql中,提供了专门用于备份sql的客户端: ...

  6. linux怎么把mysql数据库备份还原,MySQL数据库备份和还原

    MySQL数据库备份和还原 打开cmd命令行,一定不是mysql的命令行,我第一次就错在这个地方,郁闷了很久 备份MySQL数据库的命令 mysqldump -hhostname -uusername ...

  7. mysql 50g 备份多久,MySQL数据库备份过程的注意事项

    今天看了看数据备份相关的东西,总结了几个MySQL数据备份的注意事项,简单分享一下吧. 对于MySQL备份,每个DBA的理解可能都不一样,备份可以分为下面几个维度: 文件种类划分: 1.物理备份,以x ...

  8. mysql 文本备份_[MySQL]用mysqldump制作文本备份_MySQL

    mysqldump bitsCN.com [MySQL] 用mysqldump制作文本备份 在使用mysqldump备份MySQL时,备份文件是SQL格式的文本文件,它由一系列create table ...

  9. mysql nb3 备份_Navicat mysql 数据库备份和使用,备份以后是nb3文件-Go语言中文社区...

    Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_person,表中有两条数据. 1.点击"自动运行&q ...

  10. xshell MySQL表备份_shell mysql数据迁移/备份

    #!/bin/bash #### change the values below where needed..... #### 多数据库DBNAMES="MyDb1 MyDb2 MyDb3& ...

最新文章

  1. 每日一皮:没有经过测试就运行,自信的表情不言而喻!
  2. 【消息中间件】Spring整合RabbitMQ
  3. java.lang.NoClassDefFoundError comfasterxmljacksonannotationJsonView
  4. oracle rac 中的ocr,11g rac中 ocr和 votingdisk疑问
  5. oracle默认初始化用户名密码和密码修改
  6. 使用CuteFTP登陆FTP(serv-U)服务器后无法LIST目录和文件的解决方法
  7. SAP CRM Fiori搜索没有命中情况下的调试细节
  8. 用HTML做软件UI用到的的一些技术
  9. vue一步一步带你封装一个按钮组件
  10. android组合控件 重叠,Android 组合控件实现布局的复用的方法
  11. The only difference is that they are written
  12. android 中解析json格式数据
  13. 张一鸣退一步,换字节跳动的“海阔天空”
  14. lecture7-序列模型及递归神经网络RNN
  15. 理解Visual Studio 解决方案文件格式(.sln)
  16. 地方时太阳时html源码,地方时、区时和世界时
  17. 运筹系列58:python使用numba进行加速
  18. HTML5 中article,header和footer标签的使用
  19. Python 破解 MD5 暗号
  20. 2016阿里巴巴校招内推offer (by 伟伯)

热门文章

  1. Matlab:序列分析法MATLAB代码
  2. C/C++调试:gdbserver的简单使用
  3. hive使用derby的服务模式(可以远程模式)
  4. brew改源无效问题之一
  5. SQLserver单表数据导入导出
  6. DAO层使用泛型的两种方式
  7. SUMO输出车辆相关参数
  8. AB1601GPIO不支持较高频率的脉冲中断
  9. datename mysql_SQL日期时间函数总结(MSSQL)
  10. 源代码编译安装Apache2