J'ai écrit un script shell simple pour vider une base de données mysql spécifique. Le problème est qu'il me demande un mot de passe même si je le fournis. La base de données mysql est la version 5.0.27 si cela importe. Voici la ligne spécifique que j'utilise.
$MYSQLDUMP -u backup -p$MyPass $DB > $DEST/$FILE
J'ai essayé plusieurs variantes, mais en vain.
Une meilleure solution serait de stocker le nom d'utilisateur et le mot de passe dans un fichier de configuration et de pointer vers ce fichier de configuration. En l'ayant dans la ligne de commande, toute personne pouvant exécuter ps pourrait trouver le mot de passe de votre serveur.
Passez
--defaults-extra-file=/pathto/database.cnf
au vidage mysql.Le fichier de configuration doit ressembler à ceci. Définissez les autorisations du système de fichiers afin que seul le processus de sauvegarde puisse ouvrir le fichier de configuration.
Mise à jour (2016-06-29) Si vous exécutez mysql 5.6.6 ou une version ultérieure, vous devez consulter l' outil mysql_config_editor qui vous permet de stocker les informations d'identification dans un fichier crypté. Merci à Giovanni de m'en avoir parlé.
la source
aoeu1234
, mon fichier de configuration apassword = 'aoeu1234'
; sinon, vous obtiendrez une erreur non autorisée.