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
où 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 ?
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
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).
É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.