web-dev-qa-db-fra.com

Problème avec mysqldump: l'option "--defaults-extra-file" ne fonctionne pas comme prévu

J'exécute la commande suivante à partir de la ligne de commande Windows pour sauvegarder ma base de données:

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

d:\1.cnf contient les éléments suivants:

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

Malheureusement, j'ai reçu le message d'erreur suivant:

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

Si je fais:

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

cela fonctionne comme prévu.

Qu'est-ce que je fais mal ?

45
Misha Moroshko

J'ai trouvé la réponse: --defaults-extra-file doit être la première option. Cela fonctionne comme prévu:

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

Je réalise que ceci est spécifique à Linux, mais mes recherches m'ont amené ici.

J'utilise la pile LAMP de bitnami et j'ai découvert que leur "mysqldump" est en fait un script:

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 "$@"

qui ne semble pas permettre que --defaults-file soit transmis ... et fonctionne (conformément à la réponse acceptée ici).

1
Peter K.

Également répondre à ce problème. Nous avons trouvé une autre situation qui pourrait rendre l'option --defaults-extra-file non reconnue.

Lorsque vous avez modifié IFS dans un script, il est possible de résoudre ce problème. La solution consiste à réinitialiser IFS avant d'exécuter l'instruction mysql.

Pour référence.

0
cynkiller