16.02.2010Как залить большой дамп базы данных
Решил написать небольшой пост о том, как залить большой дамп базы данных. До недавних пор всегда заливал базы с помощью SSH, так как это очень быстро и удобно. Но зачастую возникает необходимость использования дешевых хостингов под сателлиты или ГС, огромным минусом которых является отсутствие SSH доступа на простых тарифах. Заливать базу с помощью phpMyAdmin я считаю полным извращением. В любом случае вам придется пилить ее на несколько частей, т.к. никакой хостинг не пропустит дампы большого размера, и вам придется долго всматриваться в сообщения об ошибках и каком-то max_allowed_packet =). Поэтому прибегнем к помощи PHP скриптов для восстановления базы данных.
Я использую два скрипта:
1) BigDump ( Скачать BigDump )
2) SypexDumperLite 1.08 ( Скачать Sypex Dumper )
Скажу сразу, BigDump справляется со своей задачей лучше любых аналогов. Скрипт работает быстро, а главное правильно. Из единственных минусов можно выделить отсутствие графической настройки скрипта. Поэтому для читателей, которые никогда не сталкивались с php, я поясню, как настроить скрипт.
Настройка BigDump
Находим в файле bigdump.php строку
// Database configuration
И приступаем к настройке соединения с базой
$db_server = 'localhost'; /* Наш сервер, нужно оставить как есть */ $db_name = ''; /* Название базы данных */ $db_username = ''; /* Пользователь БД */ $db_password = ''; /* Пароль пользователя БД */
Спускаемся ниже и видим строку
// Other settings (optional)
Тут надо поправить только этот параметр
$filename = ''; /* Название дампа БД, который нужно положить в одну директорию со скриптом, к примеру, dump.sql */
Теперь ищем строки
// Connection character set should be the same as the dump file character set (utf8, latin1, cp1251, koi8r etc.) // See http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html for the full list
И устанавливаем нужную кодировку файла с дампом
$db_connection_charset = ''; /* Чаще всего это utf8 или cp1251 */
С кодировкой могут возникнуть проблемы, поэтому обратите на этот параметр особое внимание. Я использую cp1251, если дамп создан под Денвером на локальной машине. Так же, при создании дампа через phpMyAdmin, снимите галочки с пунктов “Полная вставка” и “Расширенная вставка”, иначе скрипт начнет ругаться. Ну, вроде все, с настройкой BigDump разобрались, теперь можно приступать к восстановлению большого дампа.
Еще один скрипт, о котором я хотел упомянуть в рамках данного поста - SypexDumperLite. Он более легкий и имеет графическую настройку, что прекрасно подойдет для неопытных или ленивых веб-мастеров. Во всем остальном он значительно уступает BigDump. Лично мне не очень понравилось, как он работает с кодировками. Скрипт имеет более позднюю версию Sypex Dumper 2.0.5 Beta. Но бета она и в Африке России бета
Поэтому я даже не удивился, когда скрипт напрочь отказался лить дамп, сделанный под виндой. На настройке SypexDumper я останавливаться не буду, так как тут и ежу понятно, что к чему.
На этом все, что юзать – решайте сами. Ах да… Чуть не забыл, все-таки лучше делайте СДЛы, а не ГС на дешевых хостингах, тогда будет вам и SSH, и доступ к my.ini, и много чего еще.
Добавить блог программиста в закладки:









27.02.2010 в 14:06
Блин у меня неполучается,настраиваю bigdump на сервере, открываю через браузер для импорта и тут вылазить окно “загрузить как”.Не открывает почемуто страницу че делать база большая
03.03.2010 в 11:41
Весьма странно. А что браузер предлагает загрузить, сам скрипт или бд? На всякий случай попробуйте потестировать скрипт на локальном хосте и через другой браузер.
03.03.2010 в 17:02
Усе догнал.Я поспешил,на хостинге функция data base mysql была включена,а php выключена
17.05.2010 в 17:58
Долго маялся с дампами, уверен этот скриптик поможет!
17.05.2010 в 18:27
Бесценный скрипт, премного благодарен
06.10.2011 в 19:45
Спасибо!Разобрался наконец с этой БД!