一、前言

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备份还原和定时任务相关推荐

  1. Percona XtraBackup 关于 MySQL备份还原的详细测试

    Percona XtraBackup 关于 MySQL备份还原的详细测试 一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: ...

  2. mysql备份还原(视图、存储过程)

    最近在备份还原mysql的时候发现,视图还原报错,无法创建视图,在网上查了下资料,找到以下信息: 1.如果备份的数据库含有视图,还原时需要把my.ini中的character-set改为latin1, ...

  3. linux下mysql日志管理及mysql备份还原

    linux下mysql日志管理及mysql备份还原 1.SHOW GLOBAL VARIABLES LIKE '%log%';  显示所有日志相关的选项 2.错误日志:log_error和log_wa ...

  4. mysql备份还原参数详解

    #windows下mysql备份还原,可不用修改my.ini来还原视图(已验证) mysqldump -uroot -p123 --default-character-set=gbk --opt -- ...

  5. mysql 备份还原

    MySQL的备份与还原 MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的.  1.Win32下MySQL的备份与还原  1.1 备份  开始菜单 | 运行 | c ...

  6. MySQL备份还原知识要点

    数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.文章简单介绍如何备份和还原MySQL数据库. 备份数据库 使用mysqldump命令备份数据库 ...

  7. linux mysql 备份还原数据库_备份和还原MySQL数据库的简便方法

    我们现在将讨论如何备份数据库和还原MySQL.数据库的维护非常重要,因为数据库包含我们拥有的重要数据,因此,应备份数据库以避免数据丢失. 备份有两个目的.主要目的是在数据丢失(由于删除或损坏)时恢复数 ...

  8. c mysql备份还原数据库_如何备份和还原MySQL数据库?

    MySQL是一个永久存储数据的数据库服务器.如果使用MySQLServer,那么需要创建数据库备份以便从崩溃中恢复.mysql提供了一个用于备份的实用程序mysqldump.在本文中,将介绍关注与.s ...

  9. php mysql备份还原类_PHP实现MYSQL备份还原

    /** * mysql备份*/ classMysqlBackup {function __construct($filename, $config) {$this->setFile($filen ...

最新文章

  1. 成员变量和成员函数分开存储
  2. 【OpenCV 4开发详解】轮廓发现与绘制
  3. 强化学习之gym初战实战案例:悬崖案例CliffWalking-v0。
  4. 2021年春季学期-信号与系统-第十五次作业参考答案-第九小题参考答案
  5. 角色动作系统概述:战斗、3C相关
  6. 【转】android多分辨率适配
  7. 论文浅尝 | Improved Neural Relation Detection for KBQA
  8. linux挂载磁盘出问题,centos7 - 出现挂载磁盘,挂载出现问题
  9. OpecCV颜色分割
  10. oracle心间directory并附权,【Oracle】第一章创建授权
  11. Apache CarbonData 2.0 开发实用系列之一:与Spark SQL集成使用
  12. HBase因hostname可能引起的RIT问题。HBASE的ip和hostname坑
  13. ML for trading -cs7646-04
  14. miniusbpcb封装_MINI MICRO A型B型D型USB多类型Altium AD元件库 PCB封装库的电路方案详解...
  15. cmos逻辑门传输延迟时间_半导体学习日记-CMOS器件面临的挑战
  16. 共享的计算机用户账户限制,连接共享文件夹,提示“登录失败:禁用当前的账户”...
  17. HTML实战宝典PDF,《selenium webdriver实战宝典》记
  18. 五款免费同步备份软件介绍
  19. 联盟 (Alliances)
  20. SpringBoot整合SpringDataElasticSearch 完成地理搜索 附近人搜索 距离搜索

热门文章

  1. win10下 oracle安装(11g)
  2. C++中return 0;与return;的区别
  3. SOPHON BM1684芯片解码性能以及支持的文件格式
  4. string.h头文件的简单运用
  5. Ymodem协议介绍
  6. 【Qt】一文总结Qt5.15的在线安装
  7. 关于switch-case的用法细节及其特殊用法
  8. OpenSSL SSL_read: Connection was aborted, , errno 10053
  9. IPU相关知识(一)
  10. 在MySQL中insert时生成UUID