web-dev-qa-db-fra.com

Utilitaires MySQL - Fichier d'option ~ / .my.cnf

J'essaie d'utiliser 2 des utilitaires mysql, mysqldiff et mysqldbcompare et je veux éviter de mettre mon mot de passe sur la ligne de commande

Est-il possible d'utiliser un fichier d'options pour spécifier le mot de passe de ma connexion à la base de données afin de ne pas devoir le spécifier?

C'est le genre de commande que j'ai actuellement ...

/usr/share/mysql-workbench/python/mysqldiff --server1=root@localhost --server2=root@localhost --difftype=sql db1:db2

J'ai aussi un fichier à ~/.my.cnf qui a les autorisations "600" et contient les éléments suivants.

[client]
user=root
password=mypassword

Lorsque je me connecte via la ligne de commande à MySQL, il récupère les détails dans mon fichier d'options, mais les utilitaires mysql ne le font pas: - /

44
Carlton

Essaye ça -

[client]
user=root
password="pass"

[mysql]
user=root
password="pass"

[mysqldump]
user=root
password="pass"

[mysqldiff]
user=root
password="pass"

Emplacement pour .my.cnf: ~/.my.cnf

Veuillez vous reporter à la page de manuel intitulée tilisation de fichiers d’option

66
Retraut

Pour améliorer la réponse de @ Retraut, obtenez vos mots de passe entre guillemets. La réponse acceptée ne fonctionnerait pas si votre mot de passe contient des caractères spéciaux, ce qui en passant est une bonne pratique de sécurité.

[client]
user=root
password="p@$$"

[mysql]
user=root
password="p@$$"

[mysqldump]
user=root
password="p@$$"

[mysqldiff]
user=root
password="p@$$"

http://dev.mysql.com/doc/refman/5.7/en/option-files.html

Recherchez "Voici un fichier d’options utilisateur typique:" et voyez l’exemple qu’il indique. Bonne chance et j'espère gagner du temps à quelqu'un d'autre.

36
mimoralea