前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用脚本定时备份 MySQL 数据库

使用脚本定时备份 MySQL 数据库

作者头像
Demo_Null
发布2020-09-28 14:32:02
2.7K0
发布2020-09-28 14:32:02
举报
文章被收录于专栏:Java 学习Java 学习

1.1 Linux 备份数据库

☞ 编写脚本

  先找个地方编写如下 sh 脚本(我一般在 /usr/local 下创建 backup/backup.sh),替换掉下面的用户名,密码,数据库名以及生成文件路径及文件名。需要注意的是,如果是在 Windows 编写完成的脚本会因为 Windows每行结尾 \n\r,Linux 是 \n 而报 -bash: xxxx.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录 错误,执行 sed -i 's/\r$//' name.sh 替换掉字符就可以了。

代码语言:javascript
复制
#!/bin/bash
# 不压缩
mysqldump -uroot -proot database > /home/backup/name_$(date +%Y%m%d_%H%M%S).sql
# 压缩
mysqldump -uroot -proot database | gzip > /home/backup/name_$(date +%Y%m%d_%H%M%S).sql.gz

☞ 添加权限

  刚写好的脚本是没有权限无法执行的,我们先要给其赋权。然后直接运行脚本,看下能否完成备份,同时检查备份文件能否使用。在检查备份时,可能会报 [Err] 2006 - MySQL server has gone away 这是应为可能是 sql 语句过长即 sql 文件过大,超过 MySQL 通信缓存区最大长度。修改下 max_allowed_packet 就可以了。

代码语言:javascript
复制
# 赋权
chmod u+x backup.sh

# 备份
./backup.sh

  注意有些执行备份会提示 Warning: Using a password on the command line interface can be insecure. 可以忽略,实在看的不爽可以在 my.cnf 中 [mysqldump] 下面增加

代码语言:javascript
复制
[mysqldump]
user=myuser
password=mypassword

☞ 添加定时任务

  执行 crontab -e 进入编辑页面,然后指定执行时间以及执行程序, 00 02 * * * /usr/local/backup/backup.sh 每天凌晨 2 点执行 /usr/local/backup 下 backup.sh 脚本。使用 crontab -l 可以查看写好的定时任务;使用 service crond restart 可以重启定时任务服务。

1.2 Windows 备份远程数据库

☞ 编写脚本

  Windows 备份远程数据库的过程跟 Linux 备份数据库的过程类似,是不过一个是 bat 脚本,一个是 sh 脚本。替换下面的 MySQL 安装目录,用户名,密码,远程IP,远程端口,数据库名以及存放备份文件的目录。直接双击运行 bat 脚本进行测试,依然有些执行备份会提示 Warning: Using a password on the command line interface can be insecure.

代码语言:javascript
复制
@echo off
"MySQL bin 目录\mysqldump" -ux -px -h IP -P port database > "存放目录\wise_%date:~0,4%-%date:~5,2%-%date:~8,2%.sql"
@echo on

☞ 添加定时任务

  在计算机关机中选择任务计划程序,创建一个任务,定时触发执行写好的脚本即可。

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 Linux 备份数据库
  • 1.2 Windows 备份远程数据库
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档