Linux新手入门系列:Linux下mysql定时备份及恢复

yumo6663个月前 (03-29)技术文章29

本文是linux下mysql的导出、导入,及定时备份脚本的编写,及定时器的简单应用。

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。

注意:

Linux下区分大小写;
Linux多用户多线程;
Linux下每个文件和目录都有访问权限;

Linux下mysql定时备份及恢复

一、mysql数据导入导出语法

1.数据导出

#导出全库
# mysqldump -u 用户名 -p密码 数据库名 > all.sql
#导出单数据库
# mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#导出单表
# mysqldump -u用户名 -p密码 -p 数据库名 表名> 导出的文件名
#只导出单库的表结构
# mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#只导出单表的表结构
# mysqldump -u用户名 -p密码 -d 数据库名 表名 > 数据库名.sql

2.数据导入

#方法一(推荐):source导入
#登录mysql
# mysql -u root -pRoot@1234
#执行
create database test;
use test;
source /home/mysql_bak/test_20201230.sql;
#方法二:通过客户端工具导入
#连接数据库,创建数据库,导入数据库。
#方法三,mysql命令
# mysql -u用户名 -p密码 数据库名 < 数据库名.sql

二、Mysql定时备份

1.备份策略

备份路径为/home/mysql_bak;
定时备份为每晚23.00执行;
保留7天的备份;

2.添加备份脚本,新建备份文件

# vim /home/mysql_bak.sh
#内容如下
#!/bin/bash
# mysql定时备份
#备份目录
backupdir=/home/mysql_bak
#备份库名
d_name=test
time=$(date +%Y%m%d%H)
#利用管道命令连接gzip命令直接备份为gz压缩文件
mysqldump -u root -pRoot@1234 $d_name | gzip > $backupdir/$d_name_$time.sql.gz
#或者不压缩,直接备份为sql
# mysqldump -u root -pRoot@1234 test > $backupdir/$d_name_$time.sql
#删除7天以前的备份,注意find语句结尾的分号
# find $backupdir -name "*.sql.gz" -mtime +7 -exec rm -f {} \;

3.添加定时任务

# crontab -e #使用默认编辑器设置定时器
或编辑定时器文件
# vim /etc/crontab

增加内容

#定时每天晚上23点执行,并输入日志
0 23 * * * sh /home/mysql_bak/mysql_bak.sh > /home/mysql_bak/mysql_bak.log 2>&1

三、Mysql数据导入/恢复

1.解压备份文件

# gunzip test_20201230.sql.gz #解压后自动删除源压缩包

2.导入/恢复数据

#登录mysql
# mysql -u root -pRoot@1234
#执行
create database test; #注意数据库编码格式
use test;
source /home/mysql_bak/test_20201230.sql;
或者,通过客户端工具导入
#连接数据库,创建数据库,导入数据库。

IT小胖豆:初学者踩坑之路及过程分享,希望能够帮到一些初学者,欢迎各位IT打工人,入坑讨论-_-

相关文章

记一次mysql数据库数据自动备份(全量+增量备份)

1 全量备份描述:(1) 每日凌晨1点自动执行脚本进行数据备份并压缩,备份并压缩的数据保存到nas目录/mnt/nas/mysql_data_bak/,保留7天的备份数据(2) 保留7天备份的数据,第...

windows下mysql自动备份及备份同步至NAS解决方案

一、问题描述某项目客户要求把阿里云上一台ECS非核心的mysql库做备份,具体要求如下:1、每天1:00对mysql数据库进行完全备份。2、备份文件存放到阿里云的NAS平台上。3、保留5天的备份副本。...

MySQL数据库备份

前端监控:www.webfunny.cn ;只需要简单几步,就可以搭建一套属于自己的前端监控系统,快来试试吧。(github:webfunny_monitor)一、mysqldump 简介mysqld...

mysql备份自动存储到开源的minio

概述minio 是开源企业级对象存储系统,有着高性能、使用简单、易扩展、兼容性强等特性。下面分享一下如何把mysql备份自动存储在minio中。一、前提条件安装minio客户端mc已经安装好的mini...

使用mysqldump+crontab实现Mysql定时备份

一直在用ubuntu16.04 server apt-get 安装环境,客户需求每天0点,12点进行一次数据库的备份。所以写了一个脚本配合crontab,定时执行。首先给mysql建个cnf文件,在脚...

使用docker备份mysql数据库

数据在项目中绝对是非常重要的,若数据发生丢失,很容易造成难以挽回的损失。所以,数据库备份在生产上是必不可少的,下面我们来了解下在docker环境下mysql数据库的备份是如何做的。一、数据库容器假设我...