MySQL备份还原和定时任务
一、前言
2018年5月28日这个日子已经过去20几天了,那天发生的一切到现在回想一下都有些后怕。最近看了一篇文章里面有一句话挺好,删库(数据库损坏)只有两条路可以走,一是恢复,二是跑路。很明显我选择了第一条路,有一份幸运也有一份执着最终还是把数据恢复了回来。为什么说“幸运”呢?因为rpm方式安装的MySQL数据库默认打开了binlog日志,而且日志文件被完整的保存了下来。
虽然数据恢复了回来,但是我真心的不希望数据再次丢失了,因为下一次可能没有那么幸运。恢复数据只是在万不得已的情况下采取的补救措施,我们应该把备份数据作为日常维护的好习惯。
MySQL数据库备份及数据恢复
1.数据库备份
数据备份是我们使用计算机的同学日常的工作。不仅数据库需要定时备份,计算机上面重要的文件也需要定期做备份,那我们今天就来谈谈MySQL是怎样进行备份的。
MySQL给我们提供了一个实用的工具 mysqldump,使用该工具前要确定MySQL服务已经启动,那我们就直接来上实例吧!
备份所有的数据库
mysqldump -u数据库账号 -p数据库密码 > 导出的文件名
mysqldump -uroot -proot > mysql_all.sql
备份某一个数据库
mysqldump -u数据库账号 -p数据库密码 数据库名 > 导出的文件名和路径
mysqldump -uroot -proot test > test.sql
备份远程服务器上面的某一个数据库
mysqldump -h数据库服务器地址 -u数据库账号 -p数据库密码 数据库名 > 导出的文件名
mysqldump -h192.168.1.11 -uroot -proot test > test.sql
日常中我使用的备份命令
mysqldump -uroot -proot test --default-character-set=utf8 > test.sql
这里我加了一个参数:--default-character-set=utf8,对于中国的程序员来说乱码问题是我们的必修课。为了不给数据或程序带来乱码的困惑,我们肯定会给程序设定统一的编码方式。我通常使用的编码为UTF8,这里我们和数据库的编码保持一致即可。
2. 数据库还原
既然我们说到备份,数据还原是必不可少的,这时我们用到了MySQL常用mysql工具。
数据库还原
mysql -u数据库账号 -p数据库密码 数据库名 < 导入的文件名和路径 mysql -uroot -proot test < test.sql
日常中我使用的还原数据库命令
mysql -uroot -proot test --default-character-set=utf8 < test.sql
3. 定时备份
我们了解了数据库备份及数据库还原,这时出现了一个疑问? 备份通常是每隔一段时间都需要进行一次,数据增量较小的话一天一次,但是数据增量要是很大的话需要每天多次,我们不可能每次都是手动去备份,故而我们会考虑有没有一种方式是让电脑定时帮我们完成这个任务。
Linux服务器有一个定时任务工具:crontab,维基百科是这么说的:crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。
那我们就直接开始吧!
首先我们来创建一个shell文件
touch mysql_backup.sh
打开文件的执行权限
chmod +x mysql_backup.sh
编辑该文件
sudo vi mysql_backup.sh
#!/bin/sh
backupdir='/home/mysql'
time=`date +%Y%m%d%H%M`
mysqldump -uroot -proot test --default-character-set=utf8 > $backupdir/test_$time.sql
内容说明
- backupdir # 设置备份文件要保存的目录地址
- time # 备份的文件要是很多的话避免重名,通常使用时间来做备份文件的拓展
- $backupdir/test_$time.sql # 组装名称:数据库名 + 时间拓展
设定定时任务
crontab -e
30 * * * * sh mysql_back.sh # 每30分钟执行一次该命令
crontab的文件格式
分 时 日 月 周 要运行的命令
- 第1列分钟0~59
- 第2列小时0~23(0表示子夜)
- 第3列日1~31
- 第4列月1~12
- 第5列星期0~7(0和7表示星期天)
- 第6列要运行的命令
查看定时任务
crontab -l
定时任务控制(操作系统为:centos6,服务的控制centos7是不一样的噢)
service crond start # 开启服务
service crond stop # 关闭服务
service crond restart # 重启服务
总结
写到这里数据库备份恢复基本已经到一个段落了,做好数据备份是我们每一位计算机使用者良好的习惯,可以更好的避免数据丢失。希望我们能把它当作一种责任。
备注
本文所使用的操作系统及数据库版本说明:
- 操作系统:centos6.8
- 数据库版本:MySQL5.5.49
转载于:https://my.oschina.net/u/591464/blog/1833076
MySQL备份还原和定时任务相关推荐
- Percona XtraBackup 关于 MySQL备份还原的详细测试
Percona XtraBackup 关于 MySQL备份还原的详细测试 一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: ...
- mysql备份还原(视图、存储过程)
最近在备份还原mysql的时候发现,视图还原报错,无法创建视图,在网上查了下资料,找到以下信息: 1.如果备份的数据库含有视图,还原时需要把my.ini中的character-set改为latin1, ...
- linux下mysql日志管理及mysql备份还原
linux下mysql日志管理及mysql备份还原 1.SHOW GLOBAL VARIABLES LIKE '%log%'; 显示所有日志相关的选项 2.错误日志:log_error和log_wa ...
- mysql备份还原参数详解
#windows下mysql备份还原,可不用修改my.ini来还原视图(已验证) mysqldump -uroot -p123 --default-character-set=gbk --opt -- ...
- mysql 备份还原
MySQL的备份与还原 MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Win32下MySQL的备份与还原 1.1 备份 开始菜单 | 运行 | c ...
- MySQL备份还原知识要点
数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.文章简单介绍如何备份和还原MySQL数据库. 备份数据库 使用mysqldump命令备份数据库 ...
- linux mysql 备份还原数据库_备份和还原MySQL数据库的简便方法
我们现在将讨论如何备份数据库和还原MySQL.数据库的维护非常重要,因为数据库包含我们拥有的重要数据,因此,应备份数据库以避免数据丢失. 备份有两个目的.主要目的是在数据丢失(由于删除或损坏)时恢复数 ...
- c mysql备份还原数据库_如何备份和还原MySQL数据库?
MySQL是一个永久存储数据的数据库服务器.如果使用MySQLServer,那么需要创建数据库备份以便从崩溃中恢复.mysql提供了一个用于备份的实用程序mysqldump.在本文中,将介绍关注与.s ...
- php mysql备份还原类_PHP实现MYSQL备份还原
/** * mysql备份*/ classMysqlBackup {function __construct($filename, $config) {$this->setFile($filen ...
最新文章
- 小程序云开发,订阅消息定时批量发送实现代码
- IIS 之 添加绑定域名 或 设置输入IP直接访问网站
- Can't use asio::placeholders::error
- [Apple开发者帐户帮助]二、管理你的团队(6)找到您的团队ID
- 计算机科学软件工程专业大学排名,2020软件工程专业大学排名及录取分数汇总(2021理科生参考)...
- 网络流24题之餐巾计划问题
- was not declared in this scope
- h.264视频文件封装
- go字符串转byte_go语言学习-基本数据类型
- pandas删除某大于 数_详解pandas如何去掉、过滤数据集中的某些值或者某些行?...
- c#关于try catch finally的使用,判断日期格式是否正确
- Crontab 实例
- win7自带的xps viewer很好用
- vivo手机支持html,vivo5G手机如何设置5G?教你开启SA模式
- C语言程序员个人简历范文,程序员求职放大招!牛人用C语言写简历
- MongoDB World 2016参会全记录
- Go语言:HTTP客户端请求设置用户浏览器版本User-Agent
- Java Web中的一些概念(JSP、Servlet以及过滤器等)
- 形式化、半形式化和非形式化
- 2021年从事Linux运维云计算前景如何?