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

我有一个目录,里面有一堆 .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

最佳答案

cat *.sql | mysql?你需要它们以任何特定的顺序吗?

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

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

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

https://stackoverflow.com/questions/4708013/

相关文章:

linux - 比较文件的日期 bash

linux - docker-compose up 导致 "client and server do

java - 无法在 Android Studio 中清理项目

linux - 使远程目录保持最新

linux - 在所有子目录上使用 wc 来计算行数

linux - 用于将文件夹从本地计算机复制到远程服务器的 scp 命令语法

linux - 如何在 Unix 中获取 GMT 时间?

php - 如何运行我所有的 PHPUnit 测试?

c - fork 后,全局变量是否共享?

linux - 如何找到只对所有者具有特定权限的文件?