如何从mysqldump备份出的sql文件,恢复单个库或者单个表
从全备中,恢复单个库
【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:后必有一个空格
<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时,也可使用相对路径
信息来源:
https://blog.csdn.net/GX_1_11_real/article/details/85263863?ops_request_misc=&request_id=&biz_id=102&utm_term=mysqldump%E5%A4%87%E4%BB%BD%E5%8D%95%E4%B8%AA%E8%A1%A8&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-85263863.142^v10^control,157^v4^control&spm=1018.2226.3001.4187
本文由 我爱PHP169 作者:admin 发表,其版权均为 我爱PHP169 所有,文章内容系作者个人观点,不代表 我爱PHP169 对观点赞同或支持。如需转载,请注明文章来源。