我正在尝试导入一系列 .SQL 文件,这些文件将每个数据库对象一个文件映射到 mysql 中,而无需调用 mysql 50 次,如下所示:
mysql -u root < cat schema/db1/*.sql
这不起作用,因为“cat”不是一个目录——我将如何实现这一点——为什么我的东西不起作用?我对linux命令管道有什么不明白的地方???
编辑 |数据库是由 SQL 文件创建的,因此这也不起作用:
cat bridge_access/*.sql | mysql -u root bridge_access
答案1
您正在尝试的命令尝试将其cat
视为文件,将其内容推入mysql
STDIN 中。相反,您需要将命令的结果cat
推入 STDIN,这可以通过几种不同的方式完成。我这样做的方法是将管道输出cat
到mysql
:
$ cat schema/db1/*.sql | mysql -u root
同样有效,您可以使用:
$ mysql -u root < `cat schema/db1/*.sql`