J'ai ce qui suit dans mon ~/.my.cnf
[client]
password="somepass"
mais ce n'est pas le mot de passe que j'utilise pour chaque utilisateur @ hôte/base de données auquel je me connecte. Existe-t-il un moyen de spécifier dans la configuration différents mots de passe pour différentes choses, donc je n'ai pas à les saisir?
Comme je l'ai répondu ici , vous pouvez ajouter une section pour chaque utilisateur/hôte/db auquel vous vous connectez en utilisant la syntaxe dans votre ~/.my.cnf
:
[clienthost1] # Note: client + Host1
user=myuser
password=mypass
database=dbname
Host=server.location.com
Une fois celui-ci dans le dossier de votre utilisateur .my.cnf
, vous pouvez l'utiliser en faisant cela sur une ligne de commande:
$ mysql --defaults-group-suffix=Host1
Mettre des mots de passe clairs dans des fichiers texte n'est pas recommandé depuis mysql 5.6.6.
Vous pouvez utiliser mysql_config_editor
pour enregistrer les mots de passe chiffrés également pour fournir différents mots de passe pour différentes connexions https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html
L'autre réponse est correcte. Malheureusement, mysqladmin
ne prend pas en charge --defaults-group-suffix
(du moins pas la version que j'utilise).
J'ai donc eu recours à --defaults-file=Host.cnf
à la place, ce qui fonctionne pour mysql
, mysqladmin
et mysqldump
.