1 (изменено: Renes, 2006-06-27 19:24:42)

Тема: Импорт Базы.sql большого размера.

Сабж, собственно. Проблема в том, что когда я пытаюсь импортировать дамп базы данных, после некоторого времени выдается ошибка "#2006 - MySQL server has gone away", а перед этим выводится такое:

SQL-запрос:
INSERT INTO `attachment`
VALUES ( 96, 93, 1140132878, 1140132878, 0x776f726c642d6c696e742d707974686f6e2d325b315d2e332d312e7a6970, 0x504b03040a00000000 и дальше куча такого кода.

Я также пробовал для импорта скрипт BigDump, который стабильно выдает ошибку на 15001 строке. Сама базане лагнутая, это бэкап базы форума. В GZip весит 47 МБ, в неразвернутом 190 МБ. Собственно, как импортировать базы таких огромных размеров? Может, надо что-то менять в настройках? Я только поменял в import.ini ограничение на размер импортируемой базы с 2 МБ до 260 МБ, чтобы моя база влезла в рамки ограничений.

2

Re: Импорт Базы.sql большого размера.

выдается ошибка "#2006 - MySQL server has gone away"

MySQL server has gone away

SQL-запрос:
INSERT INTO `attachment`

Для импорта дампов более 2 мегабайт использование конструкции INSERT нецелесообразно. Обрати внимание на LOAD DATA

Я только поменял в import.ini ограничение на размер импортируемой базы с 2 МБ до 260 МБ, чтобы моя база влезла в рамки ограничений.

Обрати внимание на следующие директивы в php.ini:
max_execution_time
upload_max_filesize

Прочитай вот эту статью: http://hostinfo.ru/htmltree/hosting/web … importdata

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

3

Re: Импорт Базы.sql большого размера.

обратите внимание на Sypex Dumper:
Sypex Dumper — это PHP-скрипт, с помощью которого можно просто и быстро создать резервную копию (бекап, дамп) базы данных MySQL, а также восстановить в случае необходимости базу данных из резервной копии.

Sypex Dumper в отличии от многих подобных скриптов не загружает бекап-файл целиком в память, благодаря чему, ему безразличен размер базы данных и он одинаково быстро работает, как с маленькими, так и с большими объемами данных.
Сайт

4

Re: Импорт Базы.sql большого размера.

Требуется залить дамп больше чем 150Мб. Сервер Shared (настройки сервака мне недоступны).
Уже нашел помощь для конвернации языковой части у вас, сейчас другая проблема.

В PHP и mysql не понимаю.
В свой время нашел PHP скрипт для заливки дампа кусками.
Вышеприведённый скрипт выдаёт - "Got a packet bigger than 'max_allowed_packet' bytes (256)"

5

Re: Импорт Базы.sql большого размера.

Hanzo
Самый лучший способ импорта такого дампа - это развернуть свою копию phpMyAdmin на сервере.
После установки добавьте в конфигурационный файл phpMyAdmin (config.inc.php) строку:
$cfg['UploadDir'] = './upload';
Затем в корне phpMyAdmin создайте каталог upload и загрузите в него дамп через FTP. После загрузки дамп появится на странице импорта.

6 (изменено: Hanzo, 2009-06-19 17:59:40)

Re: Импорт Базы.sql большого размера.

Не уверен на сколько это реально с копией phpMyAdmin (Shared hosting) , но с уверенностью могу сказать, что если я попытаюсь залить на сервер файл в 170Мб с локального компа - отрубится по таймауту (проверяли. Файлы больше 5-6Мб уже не лезут).

Повторюсь. На сколько реально написать/дать линк на скрипт, который будет заливать дамп в базу кусками по N строк с паузой в Х времени между кусками.
Поиском пока ничего не нашел sad .

7

Re: Импорт Базы.sql большого размера.

Hanzo
Я же указал выше про загрузку дампа по FTP, а не по HTTP из phpMyAdmin.
Если скрипты работают с MySQL, то phpMyAdmin тоже будет работать.

8 (изменено: Hanzo, 2009-06-20 17:17:17)

Re: Импорт Базы.sql большого размера.

Хммм ...
Сказывается незнание материала и Эстонские корни smile .
Спасибо. Завтра проверю.

9 (изменено: Hanzo, 2009-06-22 11:24:11)

Re: Импорт Базы.sql большого размера.

Haunt сказал:

это развернуть свою копию phpMyAdmin на сервере.

Сейчас понял, что не знаю как это сделать roll
Само собой разумеется, доступа к шеллу у меня нету.

10 (изменено: Hanzo, 2009-06-22 14:26:06)

Re: Импорт Базы.sql большого размера.

Т.к. ответа еще нет, стал копать BigDump.php
Вычитал там такое:

Note 1: BigDump will fail processing large tables containing extended inserts. An extended insert contains all table entries within one SQL query. BigDump isn't able to split such SQL queries. In most cases BigDump will stop if some query includes to many lines. But if PHP complains that allowed memory size exhausted or MySQL server has gone away your dump probably also contains extended inserts. Please turn off extended inserts when exporting database from phpMyAdmin. If you can run Perl scripts you can try using this script to convert your dump file into a normal dump file without extended inserts.

Пытаюсь сейчас разобраться с этим перловым скриптом.

***************************

В скрипте написано так:

Usage: mysqldump --opt -u user Database | ./mysqldump-convert.pl

Но таким образом я получаю вывод данных на экран.
Проверяю сейчас опцию
cat dump.sql | ./mysqldump-convert.pl > converted_dump.sql
В перле тоже не разбираюсь roll

11

Re: Импорт Базы.sql большого размера.

Hanzo
Устанавливается phpMyAdmin точно так же, как любой другой скрипт: скачиваете архив, распаковываете у себя на компьютере, переименовываете config.sample.inc.php в config.inc.php, прописываете в переменной $cfg['blowfish_secret'] любой набор символов и цифр (например, 3zP5BBAM5Tf6), загружаете файлы скрипта по FTP в любой каталог на сервере - все.

Если MySQL расположен на другом сервере, то есть в скриптах вы пишите не localhost, то следует поправить значение переменной $cfg['Servers'][$i]['host'].

12 (изменено: Hanzo, 2009-06-22 15:22:56)

Re: Импорт Базы.sql большого размера.

Hanzo сказал:

Проверяю сейчас опцию
cat dump.sql | ./mysqldump-convert.pl > converted_dump.sql

Сработало.