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

Периодически случаются ситуации, когда появляется необходимость сохранения результатов запроса во внешний файл. Данная операция не предоставляет особых трудностей, и реализуется путем добавления INTO OUTFILE в запрос SELECT.

Подробности о проведении данной процедуры вы можете найти здесь.

Рассмотрим наши действия на примере:

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

Производим проверку:

1 $ head /tmp/transient_timeout.txt
2 _transient_timeout_dash_4077549d03da2e451c8b5f002294ff51
3 _transient_timeout_dynamic_to_top_transient_css
4 _transient_timeout_feed_08a9370cca8e4bda25c11f8557e93830
5 _transient_timeout_feed_867bd5c64f85878d03a060509cd2f92c
6 _transient_timeout_feed_ac0b00fe65abe10e0c5b588f3ed8c7ca

Кроме того, очень удобной функцией является разделение строчек и полей. Применить её можно так:

1 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’;
2 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 права на вход в каталог и доступ к файлу.

Comments

comments