У меня есть задание cron, которое выполняет резервное копирование моей базы данных MySQL путем ее экспорта. Сценарий включает пароль root для выполнения работы.
Я получаю сообщение:
Using a password on the command line interface can be insecure
, что, конечно, совершенно верно.
Исходный сценарий:
mysqldump \
--single-transaction \
[more options]
--user=root \
--password= … \
> /data/mysql/mysql.sql
Я знаю, что следующее должно работать, если У меня есть это в ~ / .my.cnf
:
[client]
user = root
password = …
, и я опускаю пользователя и пароль в скрипте. Однако я получаю следующее сообщение об ошибке:
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost'
(using password: NO) when trying to connect
, которое говорит мне, что это не работает.
Очевидно, я делаю что-то не так. Есть предложения?
Спасибо
Итак, единственное, что нужно знать о cron, это то, что он похож на env-less. Таким образом, он может не знать о /root/.my.cnf[12147pting. Возможно, вы захотите попробовать следующий флаг, чтобы указать полный путь к конфигурации, в которой хранится user / pass
--defaults-file=/root/.my.cnf