mysql定时备份所需权限、shell脚本、OSS备份
2017-07-14 23:26
701 查看
一、创建mysql备份用户并赋予所需权限
1、管理员shell登录mysql
>mysql -u root -p >看不到的密码
2、创建备份用户
Mysql>insert into mysql.user(Host,User,Password) values("localhost","dayBackUser",password("dayBackUser"));
3、赋予用户相应权限
Mysql>grant SHOW DATABASES on *.* to "dayBackUser"@"localhost";//授予 SHOW DATABASES 权限
备份数据库需要大约四项权限
SELECT SHOW DATABASES RELOAD LOCK TABLES
可以分别授予,也可以用逗号一次赋予
4、刷新权限
Mysql>flush privileges;
5、注意
mysql语句均需要分号结尾。二、定时自动备份脚本
1、首先在某目录(如/data/bak/mysqlbackup.sh)下建立脚本
>vi /data/bak/mysqlbackup.sh
2、按a键输入(vi使用方法请自行查阅,鄙人使用xshell,粘贴快捷键是shift+insert)
脚本内容如下:#!/bin/sh cd /data/bak #前往备份目录 echo "You are in bakmysql directory" Now=$(date +"%d-%m-%Y") #获取当前日期 File=bakmysql-$Now.sql #字符串组合生成文件名 mysqldump -u dayBackUser -p dayBackUser db > $File #备份主命令,此处的db是你要备份的数据库 echo "Your database backup successfully completed" SevenDays=$(date -d -7day +"%d-%m-%Y") #生成7天前的文件名,用于删除,可自行改为所需时长 if [ -f /data/bak/bakmysql-$SevenDays.sql ] #判断7天前的备份是否存在 then rm -rf /data/bak/bakmysql-$SevenDays.sql #存在即删除 echo "You have delete 7days ago bak file " else echo "7days ago bak file not exist " fi
注意:“#”后的文字为注释,可自行删除
3、赋予脚本执行权限,执行
在命令行输入以下命令,会自行备份>chmod +x /data/bak/mysqlbackup.sh >./mysqlbackup.sh
4、定时备份
使用linux(本人用centos)自带的crontab进行定时备份>crontab -e
打开crontab编辑界面后增加一行,这段代码的意思是每天1点钟执行shell脚本,脚本内容指向上述编辑的脚本(定时参数请参阅crontab用法)
0 1 * * * /bin/bash /data/bak/mysqlbackup.sh
然后按Esc键后输入wq并按回车即可保存(参考vi编辑命令)
三、阿里云oss上传
1、自行注册阿里云账号并开通OSS服务
在OSS中自行建立bucket,名称自定义,如mysqlback-bucket注意:在选区时,建议选择与ecs同区域的oss,这样可以走内网流量
内网两个好处①免费②速度飞快(说是不限速,实测峰值100M/s),实在不行可以选择走oss外网域名
2、申请Access Key
如图操作注意保存您获取到的key和secret
3、下载ossutil工具
这个linux程序很好用,只需简单的命令即可操作bucket,object(oss名词,请自行参阅文档)在命令行输入以下命令获取工具
>cd ~ ~>wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/50452/cn_zh/1493273499823/ossutil[/code]
本文示例ossutil存储在~/目录下
之后赋予执行权限~>chmod +x ossutil
配置ossutil~>./ossutil config -e oss.aliyuncs.com -i accessKey -k accessSecret
前往https://help.aliyun.com/document_detail/31837.html查看oss的数据中心,替换命令中的oss.aliyuncs.com,如果您的ecs和oss在同一区域可选用内网地址,命令中的accessKey/accessSecret替换为图片中的值,这样工具就配置好了。
ossutil的上传指令为:上传单文件 >./ossutil cp a.txt oss://ossbucket 上传文件夹 >./ossutil cp -r dir oss://ossbucket/dir/
通过阿里云提供的ossutil工具可以方便的进行文件的上传/下载/删除以及更多操作,因为这个工具在shell中执行,所以可以直接写在上边的脚本文件结尾,把数据库文件直接上传到oss中备份。
相应的,我们可以写脚本定义备份网站程序,只需要把脚本中的数据库备份替换为tar压缩命令即可。
注:本文所有命令和代码,是在centos7.3 64位环境中执行,mysql版本位5.6。作者:王鑫,转载本文请保留
相关文章推荐
- CentOS下mysql定时备份Shell脚本分享
- 服务器数据备份(shell 定时脚本备份mysql)
- 服务器数据备份(shell 定时脚本备份mysql)
- 服务器数据备份(shell 定时脚本备份mysql)
- 服务器数据备份(shell 定时脚本备份mysql)
- CentOS下mysql定时备份Shell脚本分享
- linux中mysql备份shell脚本代码
- 一个Linux下Mysql备份脚本,可用于crontab定时任务
- Shell实现MySQL定期备份策略小脚本
- 关于mysql备份脚本与定时任务
- mysql 定时增量备份和全备脚本
- 【MySQL】【安全】探讨MySQL备份所需最小权限
- linux中mysql备份shell脚本代码
- MySQL :: Linux 下自动备份数据库的 shell 脚本
- 简单的远程FTP定时备份Shell脚本分享
- mysql自动备份可通用shell脚本
- mysql备份恢复shell脚本
- mysql自动备份、恢复脚本(linux的shell、windows的批处理)
- debian mysql 定时自己主动备份的脚本
- MySQL 实现每日全量备份,定时增量备份,自动恢复脚本