ОС: CentOS 7. Mysql 5.6
Возникла проблема при запуске базы данных с этой ошибкой: Указанный ключ был слишком длинным; максимальная длина ключа составляет 768 байт. База данных была от MariaDB 10.2.14
Чтение ТАК дает мне решение добавить эти строки в /etc/my.cnf:
innodb_file_format = Barracuda
innodb_file_per_table = ON
innodb_large_prefix = 1
и перезапустите службу.
Проверка, видна ли новая настройка:
mysql> SHOW VARIABLES LIKE '%innodb_file_format';
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| innodb_file_format | Barracuda |
+--------------------+-----------+
mysql> SHOW VARIABLES LIKE '%innodb_file_per_table';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
mysql> SHOW VARIABLES LIKE '%innodb_large_prefix';
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | ON |
+---------------------+-------+
После перезагрузки все в порядке.
mysql> SELECT * FROM information_schema.INNODB_SYS_TABLESPACES;
показывает формат файла - Barracuda и RAW_FORMAT Dynamic.
База данных DEFAULT CHARSET = utf8.
Но ограничение «максимальная длина ключа составляет 767 байт» все еще здесь.
Нужна помощь, пожалуйста, что я пропустил, чтобы большой префикс работал.