MySQL/MariaDB: сохранение результата запроса в файл

Автор: | 04/02/2015

mariadb_logoИногда необходимо сохранить результаты запроса во внешний файл.

Это можно сделать, добавив INTO OUTFILE к запросу SELECT.

Подробнее тут>>>.

Например:

MariaDB [rtfm_db1]> SELECT option_name FROM db1_options WHERE option_name LIKE '_transient_timeout%' INTO OUTFILE '/tmp/transient_timeout.txt';
Query OK, 20 rows affected (0.09 sec)

Проверяем:

$ head /tmp/transient_timeout.txt
_transient_timeout_dash_4077549d03da2e451c8b5f002294ff51
_transient_timeout_dynamic_to_top_transient_css
_transient_timeout_feed_08a9370cca8e4bda25c11f8557e93830
_transient_timeout_feed_867bd5c64f85878d03a060509cd2f92c
_transient_timeout_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca

Можно так же использовать раздели полей и строк, например:

MariaDB [rtfm_db1]> SELECT option_name FROM db1_options WHERE option_name LIKE '_transient_timeout%' INTO OUTFILE '/tmp/transient_timeout.txt'  fields terminated by ',' enclosed by '"' lines terminated by 'n';
Query OK, 20 rows affected (0.00 sec)

В случае ошибки вида:

ERROR 1 (HY000): Can’t create/write to file ‘/home/setevoy/transient_timeout.txt’ (Errcode: 13)

Убедитесь, что у пользователя mysql есть права на доступ к каталогу и файлу для чтения/записи.