#mysql
#mysql
Вопрос:
При попытке запустить uplaod sql-файл объемом 3,9 ГБ через BigDump возникает ошибка
НЕОЖИДАННО: Не удается установить указатель на файл за концом файла
Дамп базы данных был экспортирован из phpMyAdmin. Файл не поврежден. В чем проблема? Какие есть другие способы импортировать такую большую базу данных?
Комментарии:
1. Где вы пытаетесь загрузить файл, используя что, на какой сервер, на котором что запущено?
2. С сервера в Unix на сервер в Windows. Оба являются стандартными серверами Apache / PHP / MySQL.
3. Как загрузить? Вы имеете в виду
LOAD DATA INFILE...
?4. Это может быть проблема файловой системы — 4 ГБ — это магический предел в некоторых файловых системах. Вы неясно объясняете, где именно возникает ошибка и что вы делаете, поэтому невозможно дать более подробную информацию
5. @ELi Upliad с помощью bigdump.php скрипт
Ответ №1:
Bigdump использует INSERT INTO table VALUES (....)
какой-то метод.
Это очень медленный способ вставки!
Использовать
LOAD DATA INFILE 'c:/filename.csv' INTO TABLE table1
Вместо этого. Обратите внимание на использование косых черт даже в Windows.
Смотрите: http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Это самый быстрый из возможных способов вставки данных в таблицу MySQL.
Это сработает, только если входной файл находится на том же сервере, что и сервер MySQL.
Ответ №2:
Я получаю аналогичную ошибку: I can't seek into .sql
Причина этой ошибки в том, что BigDump
пытается установить указатель в конце .sql-File
, а затем узнать его размер (используя функции fseek()
и fteil()
). Поскольку fseek()
происходит сбой при повторной работе с файлами 2GB
, вы получаете эту ошибку. Решение состоит в том, чтобы разделить ваш SQL-файл на фрагменты размером 1,5 — 2 ГБ…