Архів за місяць: Жовтень 2011

Як витягнути дані з MySQL у звичайний текстовий файл

Гадаю, користуватися mysqldump вміють усі, але іноді потрібно з бази даних MySQL витягнути лише дані – без форматування та SQL синтаксису. Наприклад, вам потрібен перелік користувачів з таблиці users, тобто звичайний текстовий файл, де ім’я кожного користувача займає окремий рядок.

Мені потрібно було зібрати в одному текстовому файлі тексти, що написані італійською. Запит мовою SQL для цього запиту використовувався такий:

mysql> SELECT text FROM comments WHERE language = "it";

Але як спрямувати його до текстового файлу? Виявляється є стандартна команда INTO OUTFILE:

mysql> SELECT text FROM comments WHERE language = "it"
 INTO OUTFILE "comments_it.txt";
Query OK, 3852 rows affected (0.00 sec)

Спрацювала вона добре, але де ж цей файл comments_it.txt? Я шукав його так:

$ sudo -s
# updatedb
# locate comments_it.txt
/var/lib/mysql/ІМ'Я_БАЗИ_ДАНИХ/comments_it.txt

Тобто файл буде збережено у каталозі БД. Також майте на увазі, що абсолютних шляхів команда INTO OUTFILE не розуміє.