crontab для очистки и резервного копирования базы данных mysql

crontab для очистки и резервного копирования базы данных mysql

На моем компьютере OpenBSD у меня есть следующий crontab для пользователя _mysql

0 4 * * * /backup/mysql_backup/mysql_backup.sh
0 9 * * 1 mysql -uroot -pMySQLpassword -e "purge master logs before date_sub(now(),interval 5 day);"

Первая была направлена ​​на резервное копирование баз данных mysql на этом ящике. Теперь я понимаю, что эти задания не были запущены, потому что пользователю _mysql было отказано в разрешении на подключение (я подтвердил, что пароль для пользователя _mysql правильный).

Итак, я думаю, что мне следует иметь эти задания в crontab другого пользователя, но который (я предполагаю, что они не должны быть в crontab root)? Итак, я ищу предложения о том, как это настроить. Или мне нужно изменить конфигурацию mysql.

Редактировать

Скрипт находится на том же сервере, что и база данных. Эти записи crontab завершаются ошибкой

connect(';host=localhost;mysql_read_default_group=mysqlhotcopy','',...) не удалось: доступ запрещен для пользователя '_mysql'@'localhost' (используется пароль: YES) в /usr/local/bin/mysqlhotcopy строка 178 aigaion_copy DBI

решение1

Вы можете использовать expire_logs_days=5 в вашем my.cnf для выполнения той же функции, что и ваше второе задание cron. Это, вероятно, более надежно.

решение2

Пользователь системы, запускающий cronjob (_mysql), не должен иметь значения по отношению к пользователю, подключающемуся к базе данных (root). Единственное, что будет иметь значение, это имя хоста/ip сервера, с которого подключается скрипт.

Скрипт находится на том же сервере, что и база данных? Какую именно ошибку вы получаете при попытке выполнить команды?

решение3

Согласно опубликованному сообщению об ошибке, у пользователя '_mysql'@'localhost' нет необходимых прав доступа к базе данных.

Вам необходимо предоставить этому пользователю необходимые разрешения или использовать другие учетные данные внутри вашего скрипта /backup/mysql_backup/mysql_backup.sh.

Связанный контент