我有一个使用 mysqldump 创建的文件,大小为 11GB。我需要使用“mysql”命令将其导入数据库,但我需要添加:
USE db1;
在顶部。重写该文件将花费很长时间。有没有办法可以在输入重定向的开头连接另一个文件以欺骗它将其视为单个文件?
文本.txt内容:
USE db1;
sql_out.sql内容:
data from mysqldump using the --skip-add-drop-table and --no-create-info options
尝试命令:
mysql --host=<host> --user=<user> --password=<pwd> < echo $(cat text.txt sql_out.sql)
当我这样做时,我得到:
echo: No such file or directory
如果我尝试没有回声,我会得到:
$(cat text.txt sql_out.sql): ambiguous redirect
有没有办法做到这一点?
答案1
您可以将其输入:
cat text.txt sql_out.sql | mysql --host=...
或者,为了避免创建新文件:
(echo "USE db1;"; cat sql_out.sql) | mysql --host=...
答案2
您可以在这里使用进程替换:
mysql --host=<host> --user=<user> --password=<pwd> < <(cat text.txt sql_out.sql)
语法将<(...)
进程视为文件