
Выгрузить данные MySQL в csv файл
Столкнулся с задачей, необходимо выгрузить данные MySQL в csv файл. У меня потребовалось некоторое время для поиска решений. Решил сделать заметку по данной теме «Выгрузить данные MySQL в csv файл «.
Выполняем подключение к mysql, можно выполнить:
# mysql -uroot -p
Например, мне нужно экспортировать все данные с базы данных user, но для начала, я посмотрю что в этой базе находится:
> SELECT* FROM user;
После чего, я выполняю запрос на экспорт следующей командой:
> SELECT * INTO OUTFILE '/var/lib/mysql/export.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES STARTING BY '' TERMINATED BY '\n' FROM user;
Теперь более подробно о данной строке:
- INTO OUTFILE — В этом поле необходимо указать путь и имя файла для выгрузки данных (путь должен быть абсолютным).
- FIELDS TERMINATED BY — В этом поле необходимо указать как будут разделены поля.
- ENCLOSED BY — В этом поле необходимо указать разделитель для каждого поля в файле. Он будет обрабатываться указанным символом.
- TERMINATED BY — В этом поле необходимо указать разделитель для строк.
- LINES STARTING BY и TERMINATED BY ‘\n’ разделяет каждую строку значением, которое прописано в LINES STARTING BY и строки заканчиваются разделителем который объявлен в TERMINATED BY.
- user — это имя мой базы данных с которой я хочу выгрузить данные в CSV.
Можно указать названия для каждого из столбцов, например:
SELECT 'id', 'login', 'pass','date' UNION ( SELECT * INTO OUTFILE '/var/lib/mysql/export.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES STARTING BY '' TERMINATED BY '\n' FROM user ORDER BY id ASC )
PS: будьте внимательны, может отличаться структура таблиц. Но я взял это в качестве примера.
Ничего сложного, нужно просто пару раз попробовать и понять как оно работает. На этом, у меня все с данной темой «Выгрузить данные MySQL в csv файл «.