2010-10-01 16 views
38

corro el siguiente comando desde la línea de comandos de Windows para copia de seguridad de mi base de datos:Problema con mysqldump: "--defaults-extra-file" opción no está funcionando como se esperaba

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

donde d:\1.cnf contiene lo siguiente:

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

Por desgracia, me dieron el siguiente mensaje de error:

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

Si Hago:

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

funciona como esperaba.

¿Qué estoy haciendo mal?

Respuesta

72

Encontré la respuesta: --defaults-extra-file debe ser la primera opción. Esto funciona como se esperaba:

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

Además: la secuencia también es crítica cuando pasa el parámetro "--defaults-file" normal a, p. Ej. mysqld – domi27

+4

En algunos sistemas, mysql y mysqldump se configuran como alias como 'alias mysql = 'mysql --skip-secure-auth''. Por lo tanto, si establece --defaults-extra-file primero y todavía no funciona, verifique que dicho alias no esté en su lugar, usando, por ejemplo. 'which mysql'. –

1

Me doy cuenta de que esto es específico de Linux, pero mis búsquedas me llevaron hasta aquí.

estoy usando LAMP de bitnami, y descubrió que su "mysqldump" es en realidad una secuencia de comandos:

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]" 

que no aparece para permitir --defaults-file para ser aprobada en ... y el trabajo (según la respuesta aceptada aquí).

+0

Entonces, ¿hay alguna solución para la pila LAMP? –

+0

@LeifSegen simplemente llame a la versión .bin directamente. –

Cuestiones relacionadas