web-dev-qa-db-fra.com

Est-il possible d'avoir des mots de passe configurés par base de données ou par hôte dans .my.cnf

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?

48
xenoterracide

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
67
Derek Downey

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

8
PerroVerd

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.

8
kqw