Aby użyć pliku znajdującego się w dowolnym miejscu systemu operacyjnego, użyj --defaults-extra-filenp .:
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > [desiredoutput].sql
Uwaga: .sqlpwdto tylko przykładowa nazwa pliku. Możesz użyć, co chcesz.
Uwaga: MySQL automatycznie sprawdzi, ~/.my.cnfktórego można użyć zamiast--defaults-extra-file
Jeśli używasz CRON jak ja, spróbuj tego!
mysqldump --defaults-extra-file=/path/.sqlpwd [database] > "$(date '+%F').sql"
Wymagane pozwolenie i zalecana własność
sudo chmod 600 /path/.sqlpwd && sudo chown $USER:nogroup /path/.sqlpwd
.sqlpwd zawartość:
[mysqldump]
user=username
password=password
Inne przykłady do przekazania .cnflub.sqlpwd
[mysql]
user=username
password=password
[mysqldiff]
user=username
password=password
[client]
user=username
password=password
Jeśli chcesz automatycznie zalogować się do bazy danych, potrzebujesz [mysql]na przykład wpisu.
Możesz teraz utworzyć alias, który automatycznie łączy cię z bazą danych
alias whateveryouwant="mysql --defaults-extra-file=/path/.sqlpwd [database]"
Możesz także wpisać hasło .sqlpwdi przekazać nazwę użytkownika za pomocą skryptu / cli. Nie jestem pewien, czy poprawi to bezpieczeństwo, czy nie, to zupełnie inne pytanie.
Dla kompletności stwierdzę, że możesz wykonać następujące czynności, ale jest to bardzo niepewne i nigdy nie powinno być używane w środowisku produkcyjnym:
mysqldump -u [user_name] -p[password] [database] > [desiredoutput].sql
Uwaga: NIE ma spacji między -p a hasłem.
Np. -pPassWordJest poprawny, podczas gdy -p Passwordjest niepoprawny.