Название: MySQL: export-import Отправлено: tFF от Август 30, 2009, 16:17:41 Импорт и экспорт данных MySQL
Экспорт и импорт данных в MySQL обычно требуется при переносе информации из одной базы данных MySQL в другую и для осуществления резервного копирования. Резервное копирование данных носит чисто технологический характер. Это означает, что в случае какого-либо программного или аппаратного сбоя оборудования, мы сможем восстановить актуальные данные клиента. Мы гарантируем сохранность самих данных, а не их резервных копий. Однако, при наличии резервной копии на необходимую дату, мы готовы пойти навстречу клиенту и восстановить утерянные по неосторожности данные. Для это необходимо подать заявку на свободную тему из панели управления. Единственный способ быть уверенным в 100% восстановлении данных — самостоятельно выполнять регулярное резервное копирование информации. Для этого необходимо воспользоваться утилитой mysqldump, которая доступна через unix shell. Пример команд для экспорта и импорта базы данных: Код: mysqldump -u имя_пользователя -p -h имя_сервера_БД Данные будут сохранены в файле dump.sql. Далее (в случае необходимости) восстанавливаем данные из резервной копии (дампа) так: Код: mysql -u имя_пользователя -p -h имя_сервера_БД Запускаемые указанным образом утилиты для работы с MySQL будут запрашивать пароль к базе данных. Нужно вводить пароль соответствующего пользователя БД. Если пароль был утерян, вы можете самостоятельно изменить его в панели управления, в разделе Древо услуг (выпадающее меню расположено в самой верхней строчке панели управления справа). По умолчанию система считает, что данные в базе хранятся в кодировке UTF-8. Если ваши данные хранятся в другой кодировке, то после создания резервной копии (дампа) для последующего корректного восстановления данных необходимо открыть созданный файл текстовым редактором и исправить в нём строчку: Код: /*!40101 SET NAMES utf8 */; Например, для кодировки Windows-1251 нужно указать: Код: /*!40101 SET NAMES cp1251 */; Дополнительные опции утилиты mysqldump: --add-drop-table — опция, которая добавляет команду DROP TABLE перед созданием таблиц. Перед восстановлением таблиц из дампа, таблицы с таким же именем в рабочей базе данных будут удалены и пересозданы из резервной копии. Рекомендуется использовать для предотвращения возможных ошибок после восстановления; --add-locks — опция, которая добавляет команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы. Применяется для ускорения доступа к MySQL; --quote-names — опция, сообщающая утилите о необходимости ставить кавычки для названий таблиц и столбцов. Рекомендуется к использованию для MySQL версий, младше 4.1.1. В старших версиях она активирована по умолчанию. Опции --quick и --opt рекомендуется использовать, если база данных MySQL слишком большая для того, чтобы целиком поместиться в памяти. При этом утилита mysqldump выдает ошибку: mysqldump: Out of memory (Needed XXXXX bytes) mysqldump: Код: Got error: 2008: MySQL client В итоге строчка для создания копии базы данных получается следующей: Код: mysqldump --opt -u имя_пользователя -p -h имя_сервера_БД либо такой: Код: mysqldump --quick -u имя_пользователя -p -h имя_сервера_БД Для совместимости дампа, сделанного на стороннем сервере мы рекомендуем создавать дамп базы данных с ключом: Код: --set-variable max_allowed_packet=1M либо Код: -O max_allowed_packet=1M Если во время импорта вы получите ошибку вида Код: mysqldump: Error 2020: Как правило, такое случается, если базу данных MySQL используют для хранения содержимого различных файлов, например, картинок или музыки, не размещая их непосредственно в файловой системе. В таком случае, если размер какого-нибудь файла превышает определённое значение — база данных становится непригодной для использования на наших серверах и потребуется либо удалить такие данные из вашей базы, либо рассмотреть вариант использования сервера баз данных на VPS-сервере , где можно установить нужное ограничение max_allowed_packet в необходимое значение, либо не использовать его вообще. Если на вашем сервере установлена версия MySQL 4.0.x, то для корректного переноса данных со сторонних серверов необходимо при экспорте базы данных использовать ключ: Код: --compatible=mysql40 Источник: Мастерхост (http://masterhost.ru/support/doc/mysql/#backup) Название: Re: MySQL: export-import Отправлено: tFF от Август 30, 2009, 23:31:37 скрипт
Код: #!/bin/bash -e |