Mysql config editor

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Outil de stockage des identifiants de connexion MySQL
Disponible depuis MySQL 5.6.6
Fichier généré ~/.mylogin.cnf
Voir aussi My.cnf · Mysqldump · Mysql.inc.sh

mysql_config_editor est un utilitaire fourni avec le client MySQL permettant d'enregistrer des identifiants de connexion (hôte, utilisateur, mot de passe) sous un nom de profil appelé login-path, évitant d'avoir à saisir ou stocker le mot de passe en clair dans un script ou un fichier my.cnf.

Les identifiants sont écrits dans ~/.mylogin.cnf, avec des permissions restreintes (0600). Le mot de passe y est obfusqué (chiffrement léger avec une clé stockée dans le même fichier) — cela évite qu'il apparaisse en clair à la lecture directe du fichier ou dans l'historique shell, mais ce n'est pas un chiffrement fort au sens cryptographique : toute personne ayant accès en lecture au fichier et connaissant l'algorithme (documenté publiquement) peut le décoder. La protection réelle repose sur les permissions du fichier, pas sur le secret de l'algorithme.

Enregistrer un profil

mysql_config_editor set --login-path=restore --host=localhost --user=restore --password

Le mot de passe est demandé de façon interactive (masqué), il n'apparaît jamais en argument de commande — contrairement à un mysql -p'motdepasse' classique, visible par tout utilisateur local via ps aux le temps de l'exécution.

Utiliser un profil

mysql --login-path=restore

Fonctionne aussi avec les autres outils clients (mysqldump --login-path=restore, mysqladmin --login-path=restore ping...).

Autres commandes utiles

Lister les profils enregistrés (sans afficher les mots de passe) :

mysql_config_editor print --all

Supprimer un profil :

mysql_config_editor remove --login-path=restore

Voir aussi

  • My.cnf — alternative moins sûre : identifiants en clair dans [client]
  • Mysqldump — utilisation typique avec un login-path pour les sauvegardes automatisées
  • Mysql.inc.sh — bibliothèque bash qui, elle, passe le mot de passe en argument de commande (voir l'avertissement sécurité sur cette page)