Опитвам се да архивирам базата данни с mysqldump и cronjobs.
Е, аз добавих следната команда към crontab на потребител корен:
*/30 * * * * mysqldump -u root -pVERYSECUREPASSWORD --all-databases > /var/www/cloud/dump_komplett.sql &> /dev/null
Това работи добре досега, но проблемът е, че паролата е зададена в тази команда.
Така че искам да включа файл .database.cnf, който изглежда така
[mysqldump]
user=root
password=VERYSECUREPASSWORD
и промените командата mysqldump на
mysqldump --defaults-extra-file="/var/crons/mysql/.database.cnf" --all-databases -u root > /var/www/cloud/dump_komplett.sql
за да разрешите този проблем.
Но тази команда се проваля с грешката:
mysqldump: Got error: 1045: Access denied for user "root"@"localhost" (using password: YES) when trying to connect
Не знам какво греши.
Ето някои команди, които също така се опитах:
mysqldump --defaults-extra-file="/var/crons/mysql/.database.cnf" --all-databases > /var/www/cloud/dump_komplett.sql
mysqldump --defaults-file="/var/crons/mysql/.database.cnf" --all-databases > /var/www/cloud/dump_komplett.sql
mysqldump --defaults-file="/var/crons/mysql/.database.cnf" --all-databases -u root > /var/www/cloud/dump_komplett.sql
и .database.cnf Също така се опитах:
[client]
user=root
password=VERYSECUREPASSWORD
[mysqldump]
host=localhost
user=root
password=VERYSECUREPASSWORD
[client]
host=localhost
user=root
password=VERYSECUREPASSWORD
Отговори:
5 за отговор № 1Потребителят трябва да бъде посочен в командата, а не във файла с u
параметър.
За повече подробности относно графика cron
работните места mysqldump
, проверете този отговор
2 за отговор № 2
Разбрах, че паролата трябва да е между цитати
[client]
user=root
password="VERYSECUREPASSWORD"
Отне ми известно време, за да разбера защо не работи с пароли с много не-буквени символи