我想尝试从 SQL 文件中导入数据库。我想--defaults-extra-file
通过回显配置文件并将输出传递给命令来提供参数的参数。
这个命令:
echo -e "[client]\nuser=user\npassword='mypass'\nhost=10.20.30.14\n" | mysql --defaults-extra-file=/dev/stdin db-1 < db-2.sql
返回此错误:
mysql: [ERROR] Found option without preceding group in config file /dev/stdin at line 1.
mysql: [ERROR] Fatal error in defaults handling. Program aborted!
但我确实定义了它的组。我已经尝试过这些组[client]
,[mysql]
并且[mysqld]
我也试过这个--defaults-file
参数。
我对命令没有同样的问题mysqldump
。下面的命令工作正常:
echo -e "[client]\nuser=user\npassword='mypass'\nhost=10.20.30.14\n" | mysqldump --defaults-file=/dev/stdin --add-drop-table db2 -N --column-statistics=0 > db-2.sql
mysql
(或任何其他命令)无法通过其标准输入读取两个单独的文件。标准输入是一个文件。您的第一个命令基本上是:就像是:
试试看。在设置标准输入的来源时
<
“获胜” 。|
cat
您的第二个命令不包含
<
; 它包含> db-2.sql
重定向标准输出的内容。在这种情况下|
,按您的预期工作。