0

I am using MariaDB version 10.1.38 on Debian 9.8, and I had run into (and solved) the following issue for two newly installed application (Directus 7 and Laravel 5.8):

SQLSTATE[HY000]: General error: 1709 Index column size too large. The maximum column size is 767 bytes.

This fix is intended for both Directus 7 and my Laravel 5.8, where Directus cannot be patched using the Schema::defaultStringLength(191); fix that worked for Laravel.


The reasons for this issue are discussed within this separate form, however my question pertains to the impact of the fix.

The following changes had been made to the 50-server.cnf file:

innodb_large_prefix = 1
innodb_file_format = Barracuda #usually antelope
innodb_default_row_format = dynamic #usually compact

To fix Directus 7, I had also changed that particular database's encoding to utf8_unicode_ci, but that only impacts that database.

My question is as follows: What is the impact of the InnoDB setting modification for other Databases using this installation? Will this break existing schemas for installations (of something like Drupal/Joomla)? How would this impact a future application that use this MariaDB instance?

Thanks in advance.

1 Answers1

0

Almost. Two more things are needed:

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=1;

Here is that method, plus 4 other workarounds for the 767 problem: http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes

Rick James
  • 135,179
  • 13
  • 127
  • 222