Ich habe ein einfaches Shell-Skript geschrieben, um eine bestimmte MySQL-Datenbank zu sichern. Das Problem ist, dass ich aufgefordert werde, ein Passwort einzugeben, obwohl ich es angegeben habe. Die MySQL-Datenbank ist Version 5.0.27, wenn das wichtig ist. Hier ist die spezifische Linie, die ich benutze.
$MYSQLDUMP -u backup -p$MyPass $DB > $DEST/$FILE
Ich habe verschiedene Variationen ausprobiert, aber ohne Erfolg.
Eine bessere Lösung wäre, den Benutzernamen und das Kennwort in einer Konfigurationsdatei zu speichern und auf diese Konfigurationsdatei zu verweisen. Wenn Sie es in der Befehlszeile haben, kann jeder, der ps ausführen kann, das Kennwort für Ihren Server finden.
Übergeben Sie die
--defaults-extra-file=/pathto/database.cnf
an MySQL-Dump.Die Konfigurationsdatei muss so aussehen. Stellen Sie die Dateisystemberechtigungen so ein, dass nur der Sicherungsprozess die Konfigurationsdatei öffnen kann.
Update (29.06.2016) Wenn Sie MySQL 5.6.6 oder höher ausführen, sollten Sie sich das Tool mysql_config_editor ansehen , mit dem Sie Anmeldeinformationen in einer verschlüsselten Datei speichern können. Vielen Dank an Giovanni , der mir das gesagt hat.
quelle
aoeu1234
, hat meine Konfigurationsdateipassword = 'aoeu1234'
; Andernfalls wird ein nicht autorisierter Fehler angezeigt.