从shell导入多个.sql转储文件到mysql数据库

发布于 2021-02-01 17:52:51

我有一个包含一堆.sql文件的目录,这些文件由mysql转储到服务器上的每个数据库。

例如

database1-2011-01-15.sql
database2-2011-01-15.sql
...

实际上有很多。

我需要创建一个shell脚本或单行,可能会导入每个数据库。

我在Linux Debian机器上运行。

我认为有某种方法可以将ls的结果传递到一些find命令或其他内容中。

非常感谢任何帮助和教育。

编辑

所以最终我想一次自动将一个文件导入数据库。

例如,如果我手动执行一项操作,它将是:

mysql -u root -ppassword < database1-2011-01-15.sql
关注者
0
被浏览
124
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    cat *.sql | mysql?您是否需要任何特定的顺序?

    如果您有太多方法无法处理,请尝试以下方法:

    find . -name '*.sql' | awk '{ print "source",$0 }' | mysql --batch
    

    尽管通过Linux在管道处理中应该没有问题,但通过管道传递脚本输入也解决了一些问题。这种方法的好处是mysql实用程序读取每个文件,而不是从中读取文件stdin



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看