как получить результат невыбранных операторов MySQL в OUTFILE? - PullRequest
2 голосов
/ 21 апреля 2011


Я создал событие в mysql для восстановления, оптимизации и удаления старых данных из некоторых таблиц на ежемесячной основе.

delimiter $$
Create event CheckMyDB
On SCHEDULE AT current_timestamp + INTERVAL 1 MONTH
DO 
DELETE FROM SESSIONS where MYCONDITION;
REPAIR TABLE DATANODES;
OPTIMIZE TABLE DATANODES;
$$

Теперь, как я могу узнать, каковы результаты моего мероприятия?другими словами, могу ли я сохранить результаты удаления, восстановления и оптимизации в таблице (что-то вроде INTO OUTFILE) или вставить ее в пользовательскую таблицу или отправить по электронной почте (я не думаю, что отправка электронной почты из mysql возможна !!)*

Спасибо за вашу помощь

1 Ответ

2 голосов
/ 21 апреля 2011

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

# mysql -u <user> -p<password> -vvv database < script.sql > script.log 2>&1

Вы можете записать весь вывод в текстовый файл. -vvv повышает детализацию вывода, так что вы получаете x rows affected и т. Д.

Запуск этого скрипта в качестве задания cron позволит вам настроить то же расписание, что и для вашего мероприятия, но также упростит отправку файла результатов по электронной почте.

В целях безопасности рассмотрите возможность сохранения вашего пароля в файле my.cnf для пользователя, который будет запускать сценарий:

[client]
user=<user>
password=<password>

Не забудьте chmod этот файл, чтобы его мог прочитать только владелец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...