Архів мітки: crontab

mysqldump, cron та –defaults-extra-file

Для резервного копіювання баз даних MySQL використовується утиліта mysqldump. Щоб не “світити” пароль доступу до бази даних можна використовувати файл .my.cnf такого змісту:

$ cat ~/.my.cnf 
[client]
user=КОРИСТУВАЧ
pass=ПАРОЛЬ

Тепер можна запускати mysqldump без вказування паролю:

$ mysqldump -u КОРИСТУВАЧ БАЗА_ДАННИХ > файл_дампу.sql

Але якщо ви спробуєте додати таку команду у crontab, то вас спіткає невдача:

mysqldump: Got error: 1045: Access denied for user 'КОРИСТУВАЧ'@'localhost'
 (using password: NO) when trying to connect

Справа в тому, що з CRON середовища файл ~/.my.cnf не зчитується. Треба додати спеціальну опцію –defaults-extra-file=’шлях до вашого .my.cnf’

Але і тут все не так просто. Наприклад, наступна команда не буде працювати:

$ mysqldump -u КОРИСТУВАЧ --default-extra-file=/home/КОРИСТУВАЧ/.my.cnf БД > файл_дампу.sql
mysqldump: unknown variable 'default-extra-file=/home/КОРИСТУВАЧ/.my.cnf'

Причина в послідовності аргументів. Першим має бути –default-extra-file:

$ mysqldump --default-extra-file=/home/КОРИСТУВАЧ/.my.cnf -u КОРИСТУВАЧ БД > файл_дампу.sql