MySQL - Импорт базы данных - Методы восстановления
В MySQL есть два простых способа загрузки данных в базу данных MySQL из ранее зарезервированного файла.
Импорт данных с загрузкой данных
MySQL предоставляет оператор LOAD DATA, который действует как загрузчик массовых данных. Вот пример оператора, который читает файлdump.txt из вашего текущего каталога и загружает его в таблицу mytbl в текущей базе данных.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
Если LOCAL ключевое слово отсутствует, MySQL ищет файл данных на хосте сервера, используя looking into absolute pathname, который полностью определяет расположение файла, начиная с корня файловой системы. MySQL читает файл из указанного места.
По умолчанию, LOAD DATA предполагает, что файлы данных содержат строки, которые завершаются переводом строки (новой строки), и что значения данных внутри строки разделены табуляцией.
Чтобы явно указать формат файла, используйте FIELDS предложение для описания характеристик полей в строке и LINESпредложение, чтобы указать последовательность окончания строки. СледующееLOAD DATA Оператор указывает, что файл данных содержит значения, разделенные двоеточиями, и строки, заканчивающиеся возвратом каретки и символом новой строки.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
Команда LOAD DATA предполагает, что столбцы в файле данных имеют тот же порядок, что и столбцы в таблице. Если это не так, вы можете указать список, чтобы указать, в какие столбцы таблицы следует загружать столбцы файла данных. Предположим, в вашей таблице есть столбцы a, b и c, но последовательные столбцы в файле данных соответствуют столбцам b, c и a.
Вы можете загрузить файл, как показано в следующем блоке кода.
mysql> LOAD DATA LOCAL INFILE 'dump.txt'
-> INTO TABLE mytbl (b, c, a);
Импорт данных с помощью mysqlimport
MySQL также включает служебную программу с именем mysqlimport который действует как оболочка для LOAD DATA, так что вы можете загружать входные файлы прямо из командной строки.
Чтобы загрузить данные из dump.txt в mytblиспользуйте следующую команду в командной строке UNIX.
$ mysqlimport -u root -p --local database_name dump.txt
password *****
Если вы используете mysqlimport, параметры командной строки предоставляют спецификаторы формата. Вmysqlimport команды, соответствующие двум предыдущим LOAD DATA операторы выглядят так, как показано в следующем блоке кода.
$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
--lines-terminated-by = "\r\n" database_name dump.txt
password *****
Порядок, в котором вы указываете параметры, не имеет значения для mysqlimport, за исключением того, что все они должны предшествовать имени базы данных.
В mysqlimport заявление использует --columns возможность указать порядок столбцов -
$ mysqlimport -u root -p --local --columns=b,c,a \
database_name dump.txt
password *****
Обработка цитат и специальных символов
Предложение FIELDS может указывать другие параметры формата помимо TERMINATED BY. По умолчанию LOAD DATA предполагает, что значения не заключены в кавычки, и интерпретирует обратную косую черту (\) как escape-символ для специальных символов. Чтобы явно указать символ цитирования значений, используйтеENCLOSED BYкоманда. MySQL удалит этот символ с концов значений данных во время обработки ввода. Чтобы изменить escape-символ по умолчанию, используйтеESCAPED BY.
Когда вы указываете ENCLOSED BY, чтобы указать, что символы кавычек должны быть удалены из значений данных, можно включить символ кавычки буквально в значения данных, удвоив его или поставив перед ним escape-символ.
Например, если кавычки и escape-символы - это "и \", входное значение "a""b\"c" будет интерпретироваться как a"b"c.
За mysqlimport, соответствующие параметры командной строки для указания кавычек и escape-значений: --fields-enclosed-by и --fields-escaped-by.