暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

sususuki 2021-09-01
241

本文是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密码 数据库名

二、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;

或者,通过客户端工具导入

#连接数据库,创建数据库,导入数据库。

最后修改时间:2021-09-01 19:12:16
文章转载自sususuki,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论