MySQL 5.5 LONGBLOB Данные столбца слишком длинные для столбца 'x' в строке 1 - PullRequest
0 голосов
/ 10 февраля 2012

В моей базе данных MySQL есть столбец, в котором изображения хранятся в виде байтового массива.

Я пытаюсь обновить строку, чтобы вставить новое изображение.Новое изображение имеет размер 163 КБ, и когда я преобразую его в байт [], количество элементов в массиве равно 167092. Когда я запускаю хранимую процедуру, которая выполняет обновление, я получаю ошибку «Данные слишком длинные длястолбец 'x' в строке 1. У меня уже есть существующее изображение в базе данных, которое содержит 8844 байта [] элементов при преобразовании.

Тип данных столбца - LONGBLOB. Насколько я понимаю, у меня должен быть appox4Gb для работы.

Я попытался обновить мой файл my.ini, чтобы получить MAX_ALLOWED_PACKETS = 16M, и даже попытался 100M.

Я использую библиотеки MySQL .NET Connector для выполнения моиххранимые процедуры.

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

1 Ответ

1 голос
/ 07 декабря 2012

У меня была точно такая же проблема ...

В моем случае я передавал LONGBLOB через параметр TEXT, поскольку хотел использовать CONCAT внутри хранимой процедуры для создания динамического SQL.

Решением было просто изменить текст на длинный. Это оно :) Это действительно заняло некоторое время, чтобы выяснить ...

Надеюсь, что смогу помочь даже спустя почти три года.

...