mysql到了8以后安全性大大增加,备份也是个麻烦事,我们今天来解决这个问题

一、自动备份

为了方便维护,我们将要备份的信息存入一个配置文件db.conf

localhost    root    password    db1
localhost   root    password    db2

然后写一个自动备份脚本,调用配置文件信息进行备份,脚本名为autoback.sh
内容如下:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 定义显示文本色彩
Color_Text()
{echo -e " \e[0;$2m$1\e[0m"
}Echo_Red()
{echo $(Color_Text "$1" "31")
}Echo_Green()
{echo $(Color_Text "$1" "32")
}Echo_Yellow()
{echo $(Color_Text "$1" "33")
}Echo_Blue()
{echo $(Color_Text "$1" "34")
}#检查是否传入数据库名称
#if [ ! -n "$1" ];then
#   Echo_Blue '[info] 请传入数据库名称'
#   exit
#fi
# 数据库配置
BIN_DIR="/var/lib/mysql8-2/bin"
BCK_DIR="/data/mysql80/back"
if [ ! -d $BCK_DIR ];thenEcho_Blue '[info] 创建文件夹:'$BCK_DIRmkdir $BCK_DIR
fi
while read linedoDB_HOST=`echo $line | cut -d " " -f 1`DB_USER=`echo $line | cut -d " " -f 2`DB_PASS=`echo $line | cut -d " " -f 3`DB_NAME=`echo $line | cut -d " " -f 4`Echo_Green '[info] 开始备份数据库'$DB_NAME#方法1,适用于mysql5.6以下版本#$BIN_DIR/mysqldump  --opt -u$DB_USER -p$DB_PASS -h$DB_HOST --add-locks --force -S /var/lib/mysql8-2/mysql.sock $DB_NAME> $BCK_DIR/$DB_NAME'_'$DATE.sql#方法2,要先设置my.cnf配置文件#$BIN_DIR/mysqldump --defaults-extra-file=/data/mysql80/my2.cnf --opt --add-locks --force -S /var/lib/mysql8-2/mysql.sock $DB_NAME> $BCK_DIR/$DB_NAME'_'$DATE.sql#方法3,设置密码信息DATE=`date +%Y%m%d%H`$BIN_DIR/mysqldump --login-path=login --opt --add-locks --force -S /var/lib/mysql8-2/mysql.sock $DB_NAME> $BCK_DIR/$DB_NAME'_'$DATE.sqlEcho_Green '[info] 备份数据库'$DB_NAME'完成'
done <db.conf
Echo_Blue '[info] 备份完成'
exit

脚本编写完毕

二、相关设置

现在给脚本添加权限

chmod +x autoback.sh

我们来试运行一下

./autoback.sh

运行成功
接下来就是设置定时运行了
我们来看一下crontab是否安装

crontab -l
# crontab -l
*/1 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
0 0 * * * /usr/local/qcloud/YunJing/YDCrontab.sh > /dev/null 2>&1 &

如果报command not found那就要YUM安装了

yum install -y vixie-cron crontabs

接下来我们设置每天半夜3点服务器自动备份

crontab -e

添加以下内容

00 03 * * * /bin/sh /root/autoback.sh
保存配置
:wq

我们来查看一下任务是否创建成功

crontab -l

三、相关说明

autoback.sh里我提供了三种备份方式
1、密码方式
这一种一看就懂,但因为mysql5.6以后不允许在脚本里使用密码明文,所以只是作为一种参考,否则的话,就会报错
mysqldump: [Warning] Using a password on the command line interface can be insecure.
2、配置文件方式
后面两种比较简单,我们先说第二种,也就是需要我们在my.cnf配置文件里预先设置用户名和密码,设置方式为添加以下内容:

[mysqldump]
user=root
password=password

然后在备份时指定配置文件

--defaults-extra-file=my.conf

这里要特别注册,这个参数必须紧急在mysqldump命令之后,否则会报错,好多人用mysqldump --help也查不到这个参数
3、预先设置连接信息

/var/lib/mysql8-2/bin/mysql_config_editor set --login-path=login --host=localhost --user=root -p

输入密码后,会生成/root/.mylogin.cnf文件,这个文件是加密的,无法直接查看,但是我们可以用命令来查看

/var/lib/mysql8-2/bin/mysql_config_editor print --all

则会显示本机所有的预设连接信息

[login]
user = root
password = *****
host = localhost

这个连接信息所有的mysql程序都可以使用,只需要加上参数–login-path=login
比如mysql连接

/var/lib/mysql8-2/bin/mysql --login-path=login -S /var/lib/mysql8-2/mysql.sock

这样就可以不使用密码也可以登录了,同理,自动备份也是可以的,但一定要记住,–login-path=login要紧跟在命令之后,否则会报错。

Mysql8.2自动备份脚本及3种备份出错解决方案相关推荐

  1. Oracle全备增量备份脚本,oracle数据全备份与增量备份脚本

    1.脚本名称是rman_bk_0.sh 此脚本是数据库全备脚本 设定一周执行一次 set ORACLE_BASE=/oracle (设定 oracle的 安装基目录) set ORACLE_HOME= ...

  2. Linux 开机自动执行脚本的两种方式

    前言 很多情况下,我们都希望服务重启之后,很多应用都能自动启动,那么除了linux 提供的自启动配置之外,我们也可以在开机之后,通过指定 一些脚本的具体路径,或者是某个服务的启动命令具体路径,来进行服 ...

  3. mysql备份脚本 shell_linux中mysql备份shell脚本代码 相关自动化脚本

    linux下监视进程 崩溃挂掉后自动重启的shell脚本 如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题.在Linux系统中,强大的shell就可以很灵活 ...

  4. linux mysql 备份脚本_linux 之mysql备份脚本

    #date 2020.2.20 #author zhang #描述 用户自己选择使用什么工具进行备份 #$1 账户; $2 密码 $3 地址 stty erase "^H" [ - ...

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

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

  6. oracle备份数据脚本,oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  7. linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本

    Centos6.1详细搭建svn独立服务器 1准备源码包:2个源码包一个是Subversion-1.6.20.tar.gz一个是Subversion-deps-1.6.20.tar.gz 源码安装目录 ...

  8. 老男孩mysql备份脚本_老男孩-标杆班级-MySQL-lesson07-备份恢复

    如果您对数据库感兴趣,可以添加 DBA解决方案QQ群:855439640 1. 运维在数据库备份恢复方面的职责 1.1 设计备份策略 全备 .增量.时间.自动 1.2 日常备份检查 备份存在性 备份空 ...

  9. 定时备份脚本分享(网站数据和数据库数据)

    http://www.cnblogs.com/kevingrace/p/6142373.html 散尽浮华 纵浪大化中,不喜亦不惧:应尽便须尽,无复独多虑. 1)网站数据备份 将网站数据/var/ww ...

最新文章

  1. 用AI创造可持续发展社会价值,第二届腾讯Light·公益创新挑战赛正式启动
  2. 今天,进程告诉我线程它它它它不想活了
  3. framebuffer的入门介绍-实现程序分析【转】
  4. 在latex中导入endnote中的参考文献——简明步骤
  5. 3 张图带你走近蚂蚁mPaaS音视频通话组件
  6. 吴裕雄 实战PYTHON编程(7)
  7. 【实习之T100开发】T100 Q查询开发流程
  8. 1.4.3 Arithmetic Progressions
  9. eclipse hadoop开发环境配置
  10. javascript/js计算器的基础制作
  11. NFC reader ( ISO 15693 ) NFC相关技术详解(附源代码)
  12. 2021电赛预测—手把手带你玩转DDS模块AD9833
  13. 系统集成考前冲刺口诀
  14. 27岁转行学什么计算机技术,27岁转行学IT有前途吗?
  15. 更换浏览器标题栏图标
  16. 大多数人奋斗一辈子才能得到的东西,你见过吗?
  17. pt函数html,pt是什么元素?
  18. ALWAYS ON 搭建
  19. 三极管概念工作原理及其应用
  20. HASH和HMAC(3):SHA-1算法原理

热门文章

  1. crosswalk 初步使用
  2. android:登录界面记住密码
  3. 前端登录页做个简单记住密码
  4. 11月19日绿健简报,星期六,农历十月廿六
  5. keep-alive失效原因及解决方案
  6. java计算机毕业设计共享单车管理系统(附源码、数据库)
  7. UnityShader实例12:屏幕特效之马赛克(Mosaic)材质
  8. MPP技术的优势与严重缺陷
  9. python 破解字体反爬 (二)
  10. 数字IC学习之工具篇:NCVerilog+SimVision(Cadence)