Pour utiliser un fichier qui se trouve n'importe où dans le système d'exploitation, utilisez --defaults-extra-file
par exemple:
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > [desiredoutput].sql
Remarque: .sqlpwd
n'est qu'un exemple de nom de fichier. Vous pouvez utiliser tout ce que vous désirez.
Remarque: MySQL vérifiera automatiquement ~/.my.cnf
ce qui peut être utilisé au lieu de--defaults-extra-file
Si vous utilisez CRON comme moi, essayez ceci!
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > "$(date '+%F').sql"
Autorisation requise et propriété recommandée
sudo chmod 600 /path/.sqlpwd && sudo chown $USER:nogroup /path/.sqlpwd
.sqlpwd
Contenu:
[mysqldump]
user=username
password=password
Autres exemples à passer .cnf
ou.sqlpwd
[mysql]
user=username
password=password
[mysqldiff]
user=username
password=password
[client]
user=username
password=password
Si vous souhaitez vous connecter automatiquement à une base de données, vous aurez besoin de l' [mysql]
entrée par exemple.
Vous pouvez maintenant créer un alias qui vous connecte automatiquement à la base de données
alias whateveryouwant="mysql --defaults-extra-file=/path/.sqlpwd [database]"
Vous ne pouvez également mettre que le mot de passe à l'intérieur .sqlpwd
et transmettre le nom d'utilisateur via le script / cli. Je ne sais pas si cela améliorerait la sécurité ou non, ce serait une question tout à fait différente.
Par souci d'exhaustivité, je dirai que vous pouvez effectuer les opérations suivantes, mais qu'elles sont extrêmement précaires et ne doivent jamais être utilisées dans un environnement de production:
mysqldump -u [user_name] -p[password] [database] > [desiredoutput].sql
Remarque: il n'y a AUCUN ESPACE entre -p et le mot de passe.
Par exemple, -pPassWord
est correct alors qu'il -p Password
est incorrect.