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

标签 mysql linux shell

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

关于mysql - 从 shell 将多个 .sql 转储文件导入 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4708013/

相关文章:

linux - 如何绕过 Linux "Too Many Arguments"限制

php - 搜索MySQL数据库中的多个表

mysql - Docker(docker-compose) Node +MySQL : ECONNREFUSED

php - Mysql搜索引擎

c - C 中的 POSIX 信号量但仍然存在竞争条件?

linux - Shell 脚本如果 elif 使用需要建议

php - 两个 wheres 和一个 orWhere Laravel 条件

Linux 驱动程序 : device tree and old-style driver instantiation

shell - 如何使用 shell 脚本删除文本文件中以数字开头的行

linux - 如何去除文本文件的空白空间?