English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В MySQL вы можете использоватьSELECT...INTO OUTFILEдля простого экспорта данных в текстовый файл.
В следующем примере мы будем 导出到 файлу /tmp/w3codebox.txt данные из таблицы w3codebox_tbl:
mysql> SELECT * FROM w3codebox_tbl -> INTO OUTFILE '/tmp/w3codebox.txt';
Вы можете использовать опцию команды для установки формата вывода данных, следующий пример показывает экспорт в формате CSV:
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/w3codebox.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n';
В следующем примере создается файл, значения разделены запятыми. Этот формат может быть использован многими программами.
SELECT a, b, a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
LOAD DATA INFILE - это обратная операция SELECT ... INTO OUTFILE, синтаксис SELECT. Для записи данных базы данных в файл используйте SELECT ... INTO OUTFILE, для чтения файла обратно в базу данных используйте LOAD DATA INFILE.
SELECT...INTO OUTFILE 'file_name' формата SELECT позволяет записать выбранные строки в файл. Этот файл создается на сервере-хосте, поэтому вам необходимо иметь привилегии FILE, чтобы использовать этот синтаксис.
Вывод не может быть существующим файлом. Предотвращает篡нение данных файла.
Вам需要一个 аккаунт для входа в сервер, чтобы retrieve файл. В противном случае SELECT ... INTO OUTFILE не будет работать.
В UNIX файл создается после его создания, и права доступа принадлежат серверу MySQL. Это означает, что although вы можете читать файл, возможно, вы не сможете его удалить.
mysqldump - это утилита mysql для резервного копирования базы данных. Она создает SQL-скрипт, который содержит команды CREATE TABLE, INSERT и т.д., необходимые для восстановления базы данных.
Для экспорта данных с помощью mysqldump необходимо использовать опцию --tab для указания каталога для экспортируемых файлов, который должен быть доступен для записи.
Следующий пример экспортирует таблицу w3codebox_tbl в каталог /tmp:
$ mysqldump -u root -p --no-create-info \ --tab=/tmp w3codebox w3codebox_tbl password ******
Экспортировать данные в формате SQL в указанный файл, как показано ниже:
$ mysqldump -u root -p w3codebox w3codebox_tbl > dump.txt password ******
Содержимое файла, созданного этими командами, выглядит следующим образом:
-- MySQL dump 8.23 -- -- Хост: localhost База данных: w3codebox --------------------------------------------------------- -- Версия сервера 3.23.58 -- -- Структура таблицы для таблицы `w3codebox_tbl` -- CREATE TABLE w3codebox_tbl ( w3codebox_id int(11) NOT NULL auto_increment, w3codebox_title varchar(100) NOT NULL default '', w3codebox_author varchar(40) NOT NULL default '', submission_date date default NULL, Основной ключ (w3codebox_id), Уникальный ключ AUTHOR_INDEX (w3codebox_author) ) TYPE=MyISAM; -- -- Загрузка данных для таблицы `w3codebox_tbl` -- INSERT INTO w3codebox_tbl VALUES (1,'Learn PHP','John Poul','2007-05-24'); INSERT INTO w3codebox_tbl VALUES (2,'Learn MySQL','Abdul S','2007-05-24'); INSERT INTO w3codebox_tbl VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');
Если вам нужно экспортировать все данные из базы данных, вы можете использовать следующую команду:
$ mysqldump -u root -p w3codebox > database_dump.txt password ******
Если вам нужно сделать резервную копию всех баз данных, вы можете использовать следующую команду:
$ mysqldump -u root -p --all-databases > database_dump.txt password ******
--опция --all-databases добавлена в MySQL начиная с версии 3.23.12.
Этот метод можно использовать для реализации стратегии резервного копирования базы данных.
Если вам нужно скопировать данные на другой сервер MySQL, вы можете указать имя базы данных и таблицы в команде mysqldump.
Выполните следующие команды на источнике, чтобы создать резервную копию данных в файл dump.txt:
$ mysqldump -u root -p database_name table_name > dump.txt password *****
Если выполняется полная резервная копия базы данных, то не нужно указывать конкретное имя таблицы.
Если вам нужно импортировать резервную копию базы данных в сервер MySQL, вы можете использовать следующие команды, при использовании которых вам нужно подтвердить создание базы данных:
$ mysql -u root -p database_name < dump.txt password *****
Вы также можете использовать следующие команды для прямого импорта экспортированных данных на удаленный сервер, но убедитесь, что два сервера доступны друг другу, и они могут обмениваться данными:
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
В указанных командах используется трубка для импорта экспортированных данных на указанный удаленный сервер.