MySQL: перенаправить вывод в файл журнала из сценария SQL

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

mysql database < script.sql

где сценарий script.sql содержит инструкцию, которая перенаправляет вывод в файл.

Я думал, что это должно быть возможно, если поместить тройник в скрипт следующим образом:

tee script.log;

SELECT sysdate() AS "Start" FROM dual;
UPDATE table SET column = 'off';
COMMIT;

К сожалению, это не работает, script.log не появляется.

Есть ли возможность перенаправить вывод в файл из самого скрипта?

Пример использования: эти сценарии будут выполняться нашим отделом обслуживания при развертывании приложения. Они хотели бы выполнить сценарий с минимальными шагами и усилиями, поэтому размещение перенаправления (> script.log) в конце командной строки не является реальным вариантом, по крайней мере, если они должен выполнять кучу скриптов одновременно.

Заранее спасибо, Михаил


person Michael    schedule 11.01.2013    source источник


Ответы (1)


Используйте OUTFILE как часть самого SELECT следующим образом: SELECT * FROM myTable INTO OUTFILE '/path/to/file.log'. Кроме того, для спулинга проверьте Что эквивалентно команда спулинга в mysql

person rags    schedule 11.01.2013
comment
SELECT INTO OUTFILE работает только в SELECT и пытается создавать файлы на сервере MySQL. Боюсь, это не сработает. - person Michael; 11.01.2013
comment
Спасибо за ссылку, это обычное решение, но не подходит для варианта использования. В любом случае, я думаю, я должен предоставить тонкую обертку в отдел обслуживания... - person Michael; 14.01.2013