2010-10-01 55 views
38

我从Windows命令行中运行以下命令来备份我的数据库:问题使用mysqldump:“--defaults-额外的文件”选项没有按预期工作

...\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" 

它按预期工作。

我在做什么错?

回答

72

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

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

此外:当您将正常的“--defaults-file”参数传递给例如mysqld – domi27 2014-02-26 12:03:21

+4

在某些系统上,mysql和mysqldump被设置为别名,例如'alias mysql ='mysql --skip-secure-auth''。所以,如果你先设置--defaults-extra-file并且它仍然不起作用,那么检查是否没有这样的别名,例如使用。 '哪个mysql'。 – 2014-09-17 09:08:03

1

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

我使用bitnami的LAMP堆栈,并且发现了自己的“mysqldump的”实际上是一个脚本:

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

这似乎并没有让--defaults-file在...和工作(传递根据这里公认的答案)。

+0

那么是否有LAMP堆栈的解决方法? – 2017-04-05 19:16:50

+0

@LeifSegen直接调用.bin版本。 – 2017-04-07 12:49:41