如何从mysqldump备份出的sql文件,恢复单个库或者单个表

前言
实际上关于数据库的备份,我们通常使用的是全备或者是对重要的数据库进行备份。但是,当我们因为某些情况,要对数据库执行恢复时,并不一定是要对数据库恢复全部内容,更多的是只恢复某个库或某张表的数据即可。

下面要介绍的就是如何从mysqldump备份出的sql文件,恢复单个库或者单个表

本文关于mysqldump的备份就不介绍了,mysqldump备份请参考下列链接:
https://blog.csdn.net/GX_1_11_real/article/details/81062074

从全备中,恢复单个库
【1】方法一
all.2018-12.sql为mysqldump全备出的sql文件

当要恢复的单个数据库仍存在于运行中的数据库时,可用下列方法恢复;
如该库已被删除,需先进入数据库中建立该库,再进行如下操作

示例:恢复test库

<1>从全备中直接导入单个库 

格式:
mysql -u用户 -p密码 单个数据库名  --one-database < 全备的sql文件

命令:
mysql -uroot -p'@#¥vse12'  test  -o  < all.2018-12.sql

备注:
-o 为 --one-database的缩写,也可使用 --one-database


【2】方法二
示例:恢复zabbix库

<1>从全备中直接导出zabbix库数据到新的sql文件

格式:
sed -n '/^-- Current Database: `表名`/,/^-- Current Database: `/p'  全备sql文件 > 新sql文件

命令:
sed -n '/^-- Current Database: `zabbix`/,/^-- Current Database: `/p' all.2018-12.sql > zabbix.sql


备注:
要注意空格,注意符号 
Current Database:后必有一个空格

图中为zabbix.sql的部分内容

在这里插入图片描述

<2>将提取出的新的sql数据导入数据库

 

格式:
mysql -u用户 -p密码 < 单个库sql文件

命令:
mysql -uroot -p'@#¥vse12'  < zabbix.sql


从全备中,恢复单个表
【1】方法一
all.2018-12.sql为mysqldump全备出的sql文件

示例:恢复zabbix库的users表


<1>从全备份中导出该表的建表语句到新的sql文件中

格式:
sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `表名`/!d;q'  全备sql文件 > 新sql文件

命令:
sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `users`/!d;q' all.2018-12.sql > users.sql
在这里插入图片描述

 


<2>从全备份中导出该表的insert into语句追加到上一个sql文件中

格式:
grep -i 'INSERT INTO `表名`'  全备sql文件 >> 含建表语句的sql文件

命令:
grep -i 'INSERT INTO `users`' all.2018-12.sql >> users.sql
在这里插入图片描述


<3>导入到对应的库中

格式:
use 对应的库名;
source 导出的sql文件;

命令:
use zabbix;
source /root/users.sql;

备注:source时,也可使用相对路径

在这里插入图片描述

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值