Napisałem prosty skrypt powłoki, aby zrzucić konkretną bazę danych mysql. Problem polega na tym, że monituje mnie o hasło, mimo że podaję. Db mysql db ma wersję 5.0.27, jeśli to ma znaczenie. Oto konkretna linia, której używam.
$MYSQLDUMP -u backup -p$MyPass $DB > $DEST/$FILE
Próbowałem kilku odmian, ale bezskutecznie.
Lepszym rozwiązaniem byłoby przechowywanie nazwy użytkownika i hasła w pliku konfiguracyjnym i wskazywanie na ten plik konfiguracyjny. Mając go w wierszu poleceń, każdy, kto może uruchomić ps, może znaleźć hasło do twojego serwera.
Przekaż
--defaults-extra-file=/pathto/database.cnf
do zrzutu mysql.Plik konfiguracyjny musi wyglądać tak. Ustaw uprawnienia systemu plików, aby tylko proces tworzenia kopii zapasowej mógł otworzyć plik konfiguracji.
Aktualizacja (2016-06-29) Jeśli korzystasz z mysql 5.6.6 lub nowszego, powinieneś spojrzeć na narzędzie mysql_config_editor , które umożliwia przechowywanie poświadczeń w zaszyfrowanym pliku. Dzięki Giovanni za to, że mi o tym wspomniał.
źródło
aoeu1234
, mój plik konfiguracyjny mapassword = 'aoeu1234'
; w przeciwnym razie otrzymasz nieautoryzowany błąd.