2013-11-11 2 views
7

Я пытаюсь сделать резервную копию моей базы данных с помощью mysqldump и cronjobs.Mysqldump без пароля в crontab

Ну, я добавил следующую команду кронтаб корня пользователя:

*/30 * * * * mysqldump -u root -pVERYSECUREPASSWORD --all-databases > /var/www/cloud/dump_komplett.sql &> /dev/null 

Это прекрасно работает до сих пор, но проблема заключается в том, что пароль установлен в этой команде.

Так что я хочу, чтобы включить .database.cnf файл, который похож на этот

[mysqldump] 
user=root 
password=VERYSECUREPASSWORD 

и изменил команду туздЫшпр к

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 
+0

Выполняет ли какая-либо из этих команд из командной строки? –

+0

Я тоже пробовал любую из этих команд из командной строки. (Не только crontab) –

+1

Проверьте это http://stackoverflow.com/a/6861458/1860929 –

ответ

5

Пользователь должен быть указан в команде, а не в файле с параметром u.

Для получения более подробной информации о планировании cron рабочих мест с использованием mysqldump, проверьте this answer

2

я узнал, что пароль должен быть между кавычками

[client] 
user=root 
password="VERYSECUREPASSWORD" 

Взял меня некоторое время, чтобы понять, почему он не работает с пароли с множеством нефанамерных символов

+0

То же самое произошло в командной строке btw .... – NomadHack

+0

Использовать цитаты в длинных паролях с помощью @ #% ^! символы в пароле – NomadHack

Смежные вопросы