在Linux系统中定时备份MySQL

数据备份是数据安全中一项很重要的工作,定时备份可以在数据遭受误删除后顺利恢复。将损失降到最低。

1.准备MySQL备份文件夹

一般会创建类似 /var/backups/的目录来保存备份的数据

sudo mkdir /var/backups/

如果备份的账号不是root那么就需要修改/var/backups目录的所有者和所属组

sudo chown $(whoami):$(whoami) /var/backups

2. mysqldump导出工具

mysqldump命令可以用来执行逻辑备份,生成SQL语句。

用法如下:

mysqldump -u [username] –p[password] [database_name] > /path/to/[database_name].sql

  • -u [username]= MySQL用户。

  • –p[password] = 密码。-p注意和密码之间没有空格。

  • [database_name]= 数据库名称

  • >= 输出转储到/path/to/[database_name].sql

  • – 转储文件的路径和名称。 [database_name]可以是任何你想要的。

  • 关于 –p[密码]的说明

mysqldump可以在命令行输入密码,但是不建议这样写,因为会直接泄漏数据库密码,推荐以下方式。

将密码存储在~/.my.cnf其中,用–p[password]从命令中省略该选项。用--defaults-extra-file=/path/to/.my.cnf选项来间接获取密码。

3. MySQL 备份

(1).备份所有数据库

可以使用该 --all-databases选项转储所有 MySQL 数据库。在以下示例中,我们将所有数据库转储到 /var/backups/目录.

mysqldump -u root -p[password] --all-databases > /var/backups/all-databases.sql

(2).备份单个数据库

要备份单个 MySQL 数据库,只需替换[database_name]成指定的数据库名。

mysqldump -u root -p[password] [database_name] > /var/backups/[database_name].sql

(3).备份多个数据库

mysqldump -u root -p[password] [database_1_name] [database_2_name] > /var/backups/[database_names].sql

(4).备份单个表

要从 MySQL 数据库备份单个表,只需在数据库名称后输入表名即可。

mysqldump -u root -p[password] [database_name] [table_name] > /var/backups/[table_name].sql

(5).备份多个表

要从 MySQL 数据库备份多个表,只需在数据库名称后输入表名,用空格分隔。

mysqldump -u root -p[password] [database_name] [table_1_name] [table_2_name] > /var/backups/[table_names].sql

(6).备份远程数据库

要备份远程 MySQL 数据库,只需使用-h后跟远程 IP 地址或主机名的选项。

mysqldump -h [ip_or_hostname] -u root -p[password] [database_name] > /var/backups/[database_name].sql

(7).使用压缩备份数据库

我们可以在备份数据的同时用gzip命令压缩备份文件,节省磁盘空间。

mysqldump -u root -p[password] [database_name] | gzip -c > /var/backups/[database_name].sql.gz

恢复MySQL

mysql命令将 .sql 文件还原到数据库。

mysql -u [username] –p[password] [database_name] < /path/to/[database_name].sql

  • -u [username] = MySQL用户名

  • –p[password] = 用户密码。-p 注意和密码之间没有空格 。

  • [database_name] = 数据库名称

  • < 后面跟上/path/to/[database_name].sql备份文件

自动 MySQL 备份

cron 是 Linux 中用于调度自动命令的服务。这些存储在一个名为 crontab

sudo crontab -e

00 01 * * * mysqldump -u root -p[password] [database_name] | gzip -c > /var/backups/[database_name].sql.gz

00 01 * * * 将在凌晨 1 点运行命令并覆盖.sql.gz文件 ,保存并关闭 crontab,到时间就会生成sql.gz文件。

ls -l /var/backups/
-rw-r--r-- 1 root root 66M July 3 16:33 [database_name].sql.gz

MySQL 自动备份

每日 MySQL 备份

如果你只想每天对数据库进行 MySQL 备份,请使用下面的 crontab 在每天凌晨 1 点创建备份。

00 01 * * * mysqldump -u root -p[password] [database_name] | gzip -c > /var/backups/[database_name].sql.gz

7 天滚动 MySQL 备份

在这种情况下,凌晨1点运行MySQL数据库备份命令。

00 01 * * * mysqldump -u root -p[password] [database_name] | gzip -c > /var/backups/[database_name].`date +\%a`.sql.gz

将在凌晨1点启动一次备份。这部分 date +\%a 将在文件名中添加星期几(周一、周二、周三等)。这样就有了sql.gz 过去7天的每一天的文件,不用考虑删除过多的备份文件。注意这里用到了%符号,必须使用\进行转义。

以下是生成的文件列表

ls -l /var/backups/
-rw-r--r-- 1 root root 69M July 3 01:00 A1.Mon.sql.gz
-rw-r--r-- 1 root root 70M July 4 01:00 A1.Tue.sql.gz
-rw-r--r-- 1 root root 70M July 5 01:00 A1.Wed.sql.gz
-rw-r--r-- 1 root root 70M July 6 01:00 A1.Thu.sql.gz
-rw-r--r-- 1 root root 72M July 7 01:00 A1.Fri.sql.gz
-rw-r--r-- 1 root root 73M July 8 01:00 A1.Sat.sql.gz
-rw-r--r-- 1 root root 73M July 9 01:00 A1.Sun.sql.gz

Linux中实现数据库定时备份 案例相关推荐

  1. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  2. linux下mysql数据库定时备份

    1.查看磁盘空间情况: # df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 46G ...

  3. 数据库定时备份winserver2012篇

    数据库定时备份winserver2012篇 1 序言 2 任务计划相关知识点介绍 2.1 任务计划 是什么? 2.2 批处理文件 2.2.1 批处理文件简介 2.2.2 批处理常用命令介绍 3 各个数 ...

  4. mysql 备份脚本 linux,LINUX中MySQL如何按时备份脚本

    LINUX中MySQL如何按时备份脚本 发布时间:2020-06-02 17:09:34 来源:51CTO 阅读:212 作者:三月 本篇文章给大家主要讲的是关于LINUX中MySQL如何按时备份脚本 ...

  5. pg数据库执行sql文件_在linux中Postgresql数据库如何执行脚本文件

    在linux中Postgresql数据库如何恢复数据库?执行sql脚本文件呢?具体步骤如下: 一.恢复数据库备份文件 1.将数据库备份文件xxx.backup用连接工具拷贝到/opt下,这个不固定,位 ...

  6. Oracle数据库定时备份到远程服务器

    一.需求 定时将服务器A的oracle数据库中某个database定时生成dmp,备份到服务器B中(保存10天) 二.配置数据库定时备份 在服务器A上创建备份目录,并赋予权限 [root@localh ...

  7. 第十节 利用Quartz实现数据库定时备份

    svbadmin学习日志 本学习日志是使用Springboot和Vue来搭建的后台管理系统: 演示地址:http://118.31.68.110:8081/index.html 账号:root 密码: ...

  8. Oracle数据库定时备份脚本

    Oracle数据库定时备份脚本 一.编写脚本 vim /home/backup/oraclebk.sh #! /usr/bin #路径名,指定备份的路径 FILEPATH=/home/backup/o ...

  9. Kubernetes中使用CronJob定时备份etcd集群数据

    2019独角兽企业重金招聘Python工程师标准>>> Kubernetes中使用CronJob定时备份etcd集群数据 注意:这里的内容已经过时! 使用kubernetes1.12 ...

最新文章

  1. Java反射(详述版)
  2. 解决Silverlight在ChildWindow中进行DragDrop操作问题
  3. linux下syscall函数,SYS_gettid,SYS_tgkill
  4. SAP 大中华区第一季度业绩再创历史新高
  5. Oracle数据库表信息,序列,视图等导出,导入。(数据库备份和恢复)
  6. java classpath import package 机制 @Java的ClassPath, Package和Jar
  7. html5伪类触发机制,HTML5表单验证
  8. RPC(一)[概述]
  9. mongodb定时删除数据(索引删除)
  10. [XHTML Tutorial] 走向XHTML标准 (4)(XHTML Syntax)
  11. Android-你真的懂AIDL的oneway嘛?
  12. python3 陌生的角落(1):基础语法
  13. vue会不会?看了你就会了!干了#兄弟们
  14. iOS_实现类似蒲公英、fir等发包平台 通过URL分发内测APP
  15. android 9.0 10.0 去掉音量键+Power键组合键的屏幕截图功能
  16. c语言API用法 查询
  17. Python 计算思维训练——字典与字符串练习(二)
  18. .vscode/extensions下放的是插件
  19. source insight 在Linux下安装
  20. myRIO FPGA 实现高频率等精度频率计

热门文章

  1. 第四届蓝桥杯C++B组国(决)赛真题
  2. 【Git】Git隐藏文件被展示出来的快捷键适用Mac系统
  3. 雅思口语常用高级形容词130个
  4. LeetCode刷题流程:回溯算法-13.332. 重新安排行程
  5. UI设计——最后一根稻草
  6. 【工业大数据】大数据驱动的智能车间运行分析与决策方法体系
  7. 用Python绘画金牛(一)
  8. JBPM用户指南翻译:第9章 流程建模
  9. 小波变换(分解/重构)和彩色图像分量处理
  10. 打造最大的LBS社交广告平台,陌陌凭什么?