mysqldump问题:“ - default-extra-file”选项未按预期工作

问题描述 投票:47回答:3

我从Windows命令行运行以下命令来备份我的数据库:

...\right_path\mysqldump --add-drop-database --databases my_database_name
                         --defaults-extra-file=d:\1.cnf

其中d:\1.cnf包含以下内容:

[client]
user="my_user"
password="my_password"

不幸的是,我收到以下错误消息:

mysqldump: unknown variable 'defaults-extra-file=d:\1.cnf'

如果我做:

...\right_path\mysqldump --add-drop-database --databases my_database_name
                         --user="my_user" --password="my_password"

它按预期工作。

我究竟做错了什么 ?

mysql windows mysqldump
3个回答
91
投票

我找到了答案:--defaults-extra-file必须是第一个选择。这按预期工作:

...\right_path\mysqldump --defaults-extra-file=d:\1.cnf
                         --add-drop-database --databases my_database_name

1
投票

我意识到这是特定于Linux的,但我的搜索将我带到了这里。

我正在使用bitnami的LAMP堆栈,并发现他们的“mysqldump”实际上是一个脚本:

LD_LIBRARY_PATH=/opt/lampstack-5.5.3-0/mysql/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
case "$@" in
  *--no-defaults*)
    exec $0.bin "$@"
    exit
esac
exec $0.bin --defaults-file=/opt/lampstack-5.5.3-0/mysql/my.cnf "$@"

这似乎不允许--defaults-file传入...和工作(根据这里接受的答案)。


0
投票

也遇到这个问题。发现还有另一种情况会导致--defaults-extra-file选项无法识别。

当您在脚本中更改IFS时,可能会遇到此问题。解决方案是在执行mysql语句之前重置IFS。

以供参考。

© www.soinside.com 2019 - 2024. All rights reserved.