Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Mysql: Row size too large

#mysql


Всем привет!

У меня есть таблица temp. В ней:


6 полей int
1 поле tinyint
2 поля varchar (300 и 100)
15 полей text


Однажды при попытке Updat'а строки получил:


  Syntax error or access violation: 1118 Row size too large. The maximum
  row size for the used table type, not counting BLOBs, is 8126. You
  have to change some columns to TEXT or BLOBs.


Гуглил - но везде пишут убирайте varchar и меняйте на text. Я поменял - не помогло.
Хотелось бы обойтись без изменения настроек InnoDB и компрессии таблицы, если это возможно.
    


Ответы

Ответ 1



Эту проблему можно решить путем изменения значения innodb_log_file_size в my.ini конфигурационном файле. Например [mysqld] .... #это у меня по умолчанию стоит innodb_log_file_size = 5M #5M Можно заменить на 25М или 250M #Дальше говорится как определиться на сколько .... Как я понял ошибка происходит из за того что innodb_log_file_size слишком мал чем размер строки с ошибкой.Источник1 InnoDB Notes Источник2: Убедитесь, что настройка innodb_log_file_size достаточно велико -- innodb_log_file_size должен быть установлен на значение больше, чем в 10 раз чем размер BLOB данных, найденных в строках таблиц плюс длина других полей переменной длины (VARCHAR, VARBINARY и поля типа TEXT). Несоблюдение этого правила может привести к "Row size too large" ошибкетекст, выделенный жирным шрифтом.

Комментариев нет:

Отправить комментарий