MySQL with compress row format: Error Code: 1709. Index column size too large. The maximum column size is 767 bytes

I’m trying to setup ownCloud with AWS Aurora MySQL 5.7 database but I get:
Error Code: 1709. Index column size too large. The maximum column size is 767 bytes.

I’m deploying ownCloud to Kubernetes using Helm chart from https://github.com/helm/charts/tree/master/stable/owncloud

I created database with

CREATE DATABASE owncloud CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

Here is the failing query:

CREATE TABLE owncloud.oc_mimetypes (
  `id` INT AUTO_INCREMENT NOT NULL,
  `mimetype` VARCHAR(255) DEFAULT '' NOT NULL,
  UNIQUE INDEX mimetype_id_index (`mimetype`),
  PRIMARY KEY (`id`)
) ROW_FORMAT=COMPRESSED;

If I remove ROW_FORMAT option, it works fine.

My server config:

mysql> show variables like "%version%";
+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| aurora_version          | 2.03.1                       |
| innodb_version          | 5.7.12                       |
| protocol_version        | 10                           |
| slave_type_conversions  |                              |
| tls_version             | TLSv1,TLSv1.1,TLSv1.2        |
| version                 | 5.7.12                       |
| version_comment         | MySQL Community Server (GPL) |
| version_compile_machine | x86_64                       |
| version_compile_os      | Linux                        |
+-------------------------+------------------------------+

mysql> show global variables like 'innodb_lar%';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| innodb_large_prefix | ON    |
+---------------------+-------+

mysql> show global variables like 'innodb_file%';
+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_file_format       | Barracuda |
| innodb_file_format_check | ON        |
| innodb_file_format_max   | Barracuda |
| innodb_file_per_table    | ON        |
+--------------------------+-----------+

Any idea?

Hello,

after checking this documentation chapter Configure MySQL for 4-byte Unicode Support, it seems your configuration is fine.

I’d suggest you open an issue.

Hi,
As far as I can tell Amazon Aurora is not officially supported according to the page that @cs35 posted.
While Amazon says that Aurora is MySQL compatible, there might be some (unknown?) incompatibilities.

I’ve done a quick google, which showed other people having similar problems with Aurora:

So I would recommend using a MariaDB or MySQL directly. I think there are MySQL RDS instances available on AWS.
Otherwise why not follow the recommendation of the documentation you posted, which recommends a Bitnami-mariadb setup?

Cheers,
Erik