
次のように、mysqlを50回呼び出さずにデータベースオブジェクトごとに1つのファイルをmysqlにマッピングする一連の.SQLファイルをインポートしようとしています。
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`