Je suis en train d'utiliser mysqldump
pour vider un schéma, et il fonctionne la plupart du temps, mais je suis tombé sur une curiosité: l'option -p
ou --password
semble que cela fait autre chose que la mise en le mot de passe (comme la page man
et --help
sortie disent cela devrait). Plus précisément, on dirait qu'il fait ce qui est indiqué ici: http://snippets.dzone.com/posts/show/360 - c'est-à-dire, mettre la base de données en mémoire. Pour prendre en charge mon affirmation un peu farfelue, je peux vous dire que si je ne spécifie pas l'option --password
(ou -p
), la commande imprime l'instruction d'utilisation et quitte avec une erreur. Si je le spécifie, je suis immédiatement invité à entrer un mot de passe (!), Puis la base de données spécifiée dans l'option --password
est supprimée (ou une erreur est généralement signalée si un mot de passe ne correspond à aucun nom de base de données) .Est-ce que mysqldump --password fait vraiment ce qu'il dit?
Voici une transcription:
$ mysqldump -u test -h myhost --no-data --tables --password lose Enter password: -- MySQL dump 10.10 mysqldump: Got error: 1044: Access denied for user 'test'@'%' to database 'lose' when selecting the database
Alors, qu'est-ce qui se passe? Est-ce la façon dont cela est censé fonctionner? Cela ne semble sûrement pas logique et ne correspond pas à la documentation officielle. Et enfin, si c'est comme ça que ça fonctionne, comment dois-je spécifier le mot de passe à utiliser dans un travail automatisé? En utilisant expect
??? J'utilise mysqldump Ver 10.10 Distrib 5.0.22, for pc-linux-gnu (i486)
.
étiquettes génériques supprimées, ajoutées gotcha – Sklivvz