Добавить в корзинуПозвонить
Найти в Дзене
IT_WORLD BLOG

Выгрузка данных из запроса в файл в MySQL(Урок 18)

В этом уроке мы рассмотрим как выгружать данные столбцов в отдельный файл на компьютере и этот процесс называется выгрузка данных из запроса в файл, то есть в командную сроку MySQL не будет выводится результат выполнения команды, в нашем случае эта команда SELECT а будет записан результат выполнения в отдельный файл на компьютере и его можно будет открыть с помощью простого текстового редактора например как Блокнот или Gedit. И так приступим: • INTO OUTFILE данная команда позволяет выводить результат выполнения команд в отдельный файл на компьютере. данная команда полностью аналогична команде LOAD DATA и также поддерживает параметры FILEDS и LINES выгрузка данных осуществляется в кадрировке которая использовалась для базы данных. Если мы заходим файл который выгрузили снова загрузить в базу данных то таблица и столбцы в новой базе данных должны повторять структуру старой базы данных иначе загрузка попросту не пройдет и завершится ошибкой. Данная команда очень часто используется админис

В этом уроке мы рассмотрим как выгружать данные столбцов в отдельный файл на компьютере и этот процесс называется выгрузка данных из запроса в файл, то есть в командную сроку MySQL не будет выводится результат выполнения команды, в нашем случае эта команда SELECT а будет записан результат выполнения в отдельный файл на компьютере и его можно будет открыть с помощью простого текстового редактора например как Блокнот или Gedit. И так приступим:

• INTO OUTFILE данная команда позволяет выводить результат выполнения команд в отдельный файл на компьютере. данная команда полностью аналогична команде LOAD DATA и также поддерживает параметры FILEDS и LINES выгрузка данных осуществляется в кадрировке которая использовалась для базы данных. Если мы заходим файл который выгрузили снова загрузить в базу данных то таблица и столбцы в новой базе данных должны повторять структуру старой базы данных иначе загрузка попросту не пройдет и завершится ошибкой. Данная команда очень часто используется администраторами баз данных для резервного копирования таблиц или для переноса таблиц на новый сервер где работает MySQL.

Синтаксис данной команды выглядит следующем образом:

SELECT <НАЗВАНИЕ СТОЛБЦА КОТОРЫЙ ХОТИМ ВЫВЕСТИ> FROM <НАЗВАНИЕ ТАБЛИЦЫ ИЗ КОТОРОЙ ВЫВОДИМ ДАННЫЕ> INTO OUTFILE <'ПОЛНЫЙ ПУТЬ ГДЕ БУДЕТ ЛЕЖАТЬ ФАЙЛ/НАЗВАНИЕ ФАЙЛА И РАСШИРЕНИЕ'>;

Если MySQL выдает ошибку:

Если при выполнении выгрузки данных вы получаете следующею ошибку:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

То ваш сервер MySQL работает в режиме --secure-file-priv то вы не сможете выводить данные в отдельный файл для этого необходимо найти конфигурацию сервера обычно она находится по пути /etc/mysql и файл называется my.cnf это файл конфигурации нам нужно его отредактировать и добавить следующие строчки:

[mysqld] // Если у вас уже есть эта строчка то её добавлять не надо
secure-file-priv = "<ПУТЬ ДО ПАПКИ ГДЕ БУДУТ ХРАНИТСЯ ФАЙЛЫ С ДАННЫМИ>"

Далее даем права на создание и удаление файлов в нашей папки и перезапускаем MySQL сервер:

chown -R mysql:mysql <ПУТЬ ДО ПАПКИ ГДЕ БУДУТ ХРАНИТСЯ ФАЙЛЫ С ДАННЫМИ> // учтите что нельзя давать права для корневой директории операционной системы или в домашний каталог

systemctl restart mysql

Данная команда также будет работать и в Windows просто там будет другой путь до конфигурационного файла а также может быть и другое название конфигурационного файла.

Пример использования:

Следующая команда выведет все столбцы из таблицы Предмет, в отдельный файл который расположен по пути /home/vlad/Предмет.txt, .txt это расширение файла в котором будут хранится данные:

SELECT * FROM Предмет INTO OUTFILE '/home/vlad/datamysql/Предмет.txt';