Безопасное резервное задание крона MySQL – my.cnf не читается

Вам не нужно явно объявлять RuntimeException в объявлении метода. Поскольку IllegalArgumentException является RuntimeException, вы можете удалить его.

Из официальной документации :

Исключения во время выполнения могут встречаться где угодно в программе, и в типичном случае их может быть очень много. Необходимость добавлять исключения времени выполнения в каждое объявление метода уменьшит ясность программы. Таким образом, компилятор не требует, чтобы вы перехватывали или указывали исключения времени выполнения (хотя вы можете).

blockquote>

Вы можете упомянуть это в разделе JavaDoc метода. Это дает потребителю подсказку о любых непроверенных исключениях. Также распространено добавлять эту информацию косвенно к параметрам.

/**
  * @throws IllegalArgumentException if the suite combination is illegal
  */

/**
  * @param myParam the param, must not be null
  */

Проверка параметров часто включает в себя выдачу IllegalArgumentException, если один параметр не соответствует требованиям. Так как они перечислены в JavaDoc (здесь не нуль ), это ошибка программиста, если он пропустит null.

11
задан mikl 2 March 2009 в 11:27
поделиться

4 ответа

Используйте --defaults-extra-file опция сказать это, где найти .my.cnf файл (принимающий это читаемо тем, какой бы ни пользователь работает mysqldump.

18
ответ дан 3 December 2019 в 05:14
поделиться

Это странно на самом деле, крон должен считать .my.cnf. Как Вы выполняете cronjob в/etc/crontab или crontab-e? Вы могли попытаться использовать AutoMySQLBackup, который является маленьким сценарием оболочки с помощью mysqldump.

2
ответ дан 3 December 2019 в 05:14
поделиться

На FreeBSD можно добавить следующее:

security.bsd.see_other_uids=0

К/etc/sysctl.conf и перезагрузке или использованию

sysctl security.bsd.see_other_uids=0

Устанавливать sysctl значение.

Теперь пользователи кроме корня только могут просмотреть свои собственные процессы. Так помещение пароля в командной строке менее опасно.

Кроме того, как выполняют crontab? Вы добавляли его к пользователям root crontab при помощи crontab-e-u корень, или Вы добавляли его к/etc/crontab?

Проверьте, что правильные полномочия установлены на .my.cnf, а также какие переменные среды установлены crontab, поскольку это может заставить его смотреть в другом месте, чем Ваш корневой каталог (который для корня на FreeBSD является корнем/).

0
ответ дан 3 December 2019 в 05:14
поделиться

Я тоже столкнулся с этим.

Похоже, что MySQL жестко запрограммирован на поиск '~ / .my.cnf' вместо чего-то вроде '$ HOME / .my. cnf '.

Во FreeBSD cronjobs, вызываемые из / etc / crontab, будут игнорировать символ тильды' ~ 'и, следовательно, будут игнорировать значение вроде ~ / .my.cnf

Фактически, следующее не работает для меня вообще:

mysql --defaults-extra-file = ~ / .my.cnf

Однако использование переменной $ HOME действительно работает:

HOME = / home / admin mysql --defaults-extra-file = $ HOME / .my.cnf

В качестве альтернативы моя cronjob будет работать, если я перенесу ее из / etc / crontab в / var / cron / tabs / root (Используя 'crontab - e 'как корень).

2
ответ дан 3 December 2019 в 05:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: