Ошибки · Решение
MySQL error 1406: Data too long for column
При строгом режиме сервер отклоняет строку вместо молчаливого усечения значения.
Короткий ответ
MySQL 1406 означает, что значение не помещается в размер/диапазон целевой колонки. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.
Что означает ошибка
При строгом режиме сервер отклоняет строку вместо молчаливого усечения значения.
Возможные причины
- VARCHAR/CHAR слишком короток для реального текста.
- Binary/string payload после кодирования стал длиннее ожидаемого.
- Схема хранит поле в типе, который перестал соответствовать продуктовым данным.
Что проверить
- Возьмите имя колонки и номер строки из сообщения 1406.
- Измерьте длину входного значения в тех же единицах/charset, что использует колонка.
- Сверьте `SHOW CREATE TABLE` и фактические требования к данным.
Безопасные шаги
- Увеличьте размер/тип колонки миграцией, если длинные значения валидны.
- Если значение ошибочно, ограничьте его на уровне бизнес-валидации до записи.
- Не полагайтесь на нестрогий режим и автоматическое усечение критичных данных.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если 1406 появился после смены charset или формата payload, проверьте миграцию и storage requirements до расширения всех колонок.
Похожие ошибки
- /errors/mysql-error-1005-cant-create-table/
- /errors/mysql-error-1040-con-count-error/
- /errors/mysql-error-1048-bad-null-error/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.