скопировать поле blob mysql из одной базы данных в другую

У меня есть база данных с изображениями, хранящимися в виде полей больших двоичных объектов. Ничего не поделаешь, это был выбор предыдущего разработчика.

Теперь мне нужны эти данные на новом сайте, а провайдер не позволяет мне копировать данные простым способом (файл стал больше 11 МБ - не загружаю его, и у меня нет доступа к оболочке). Поэтому я решил написать сценарий, который открывает соединение в db1, выбирает все записи, а затем копирует каждую в таблицу в новой db2.

Работает все нормально, если я исключаю капли. Если я захочу их тоже скопировать, он не вставится.

У кого-нибудь было что-то подобное раньше? Должен ли я относиться к BLOB-объектам по-другому, когда дело доходит до вставки?

Спасибо за любые идеи или помощь.


person half-a-nerd    schedule 02.02.2010    source источник
comment
Как вы пытаетесь вставить, и как это терпит неудачу?   -  person bobince    schedule 02.02.2010


Ответы (2)


11 МБ — это не такой большой файл, я удивлен, что у вашего хоста такой низкий максимальный размер загрузки.

Думали ли вы об экспорте в виде SQL, разделении файла на две части (в Notepad++ или что-то в этом роде), а затем загрузке его в более мелкие разделы? Это не займет много времени.

person Adam Hopkinson    schedule 02.02.2010
comment
+1 - С точки зрения скорости, я подозреваю, что это, вероятно, путь. - person John Parker; 02.02.2010

Возможно, проверьте, можете ли вы увеличить параметр max_allowed_packet в своей базе данных mysql. Я не уверен, влияет ли это на вставки, но я помню, что мне приходилось настраивать этот параметр, когда я работал над веб-приложением, которое позволяло пользователям загружать двоичные файлы размером 3-5 МБ из полей больших двоичных объектов в БД.

Эта ссылка может быть полезной из быстрого поиска в Google: http://www.astahost.com/info.php/max_allowed_packet-mysql_t2725.html

person AndreiM    schedule 02.02.2010