#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" ошибкетекст, выделенный жирным шрифтом.
Комментариев нет:
Отправить комментарий