首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当MySQL转储包含“dump”时,在导入期间显示警告

问当MySQL转储包含“dump”时,在导入期间显示警告
EN

Stack Overflow用户
提问于 2016-05-15 10:47:21
回答 1查看 173关注 0票数 0

假设我有一个大型的MySql转储,我想将它导入到一个特定的数据库中。

我可以用

mysql -D bar --one-database < foo.mysql

foo.mysql在某个地方有一个use foo;。

这个命令已经完成了我想做的大部分工作:忽略数据,这对其他数据库来说比bar更重要。

我可以使用grep -e "^use " foo.mysql来检查数据库转储是否包含use语句。

但是,我也可以在导入过程中这样做,这样我就不必读两次转储了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-15 15:40:41

导入示例时阅读:

代码语言:javascript
复制
< dump.sql tee >(sed -n '/^USE `[^`]*`;$/ p' 1>&2) | mysql ...

该示例将将文件dump.sql导入mysql,同时打印use-语句:

代码语言:javascript
复制
...
USE `blue-racoon`;
USE `funny-basil`;
USE `purple-fish`;
...

说明:如果您有一个包含mysql服务器的所有数据库的完整转储(--all-databases long选项),并且希望在文件排入mysql时检查所有SQL USE-statements,则可以使用tee动态复制内容,如果一行是USE-statement,则sed只能从重复的行中打印。

然后将过滤后的输出重定向到STDERR进行检查,而未过滤的输出则可以由mysql如常导入。

我希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37237310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档