从MySQL全库备份中恢复某个库和某张表的方法
一定要使用测试库操作
一、全库备份恢复单个库的数据流程:
1. 第一种方法:
--从全备中导出所需库的建库语句和INSERT语句。
sed -n '/^-- Current Database: `库名`/,/^-- Current Database: `/p' 全备.sql > test.sql
--导入库,会自动建库
mysql 库名 < test.sql
2. 另一种方法:
mysql -u用户 -p密码 单个数据库名 -o < 全备的sql文件
备注:
-o 为 --one-database的缩写,忽略其它库,只保留在命令行中的数据库。
done
二、全库备份恢复单个表的数据流程:
1、从全备份中提取出该表的建表语句
sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `表名`/!d;q' 全备库或导出的单库.sql > 表tt.sql
2. 提取该表的insert into语句,追加到上一个建库sql后
grep -i 'INSERT INTO `表名`' 全备库或导出的单库.sql >>表tt.sql
3. 导入到对应库中
mysql 库名 < 表tt.sql
或:
use 库名;
source 表tt.sql;
done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~