I just setup debian 8.3 on a VM and installed xampp after this Tutorial. Everything is working, until I tried to create a new table:
create table testtable
(
id int(10) not null auto_increment,
firstname varchar(255) collate utf8mb4_german2_ci not null,
lastname varchar(255) collate utf8mb4_german2_ci not null,
primary key (id),
unique key (lastname)
)engine = innodb default charset=utf8mb4, collate=utf8mb4_german2_ci
I got the error: #1709 - Index column size too large. The maximum column size is 767 bytes.
Then I found out this comes from the prefix limitation
which is limited to 767Byte in Innodb
and I can fix this by set the innodb_large_prefix in the my.cnf file. But I can't find the file, its not under /etc/
and theres no /etc/mysql/
-folder, the only my.cnf
I found is in /opt/lampp/etc/
, however, after I added the innodb_large_prefix=1
to the file and restarted lampp. I stil get the same error. What did I do wrong?
edit: SELECT version()
returns 5.6.14
, so innodb_large_prefix
should be supported.
edit2: I know I can work around this by only set part of the the key as index to get under 767Byte. But I want to know here how to config the mysql correctly.
Between 5.6.3 and 5.7.7 (that is if you are running MySQL 5.6 or MariaDB 10.0), there are 4 steps:
Note
SELECT * FROM information_schema.INNODB_SYS_TABLESPACES;
will provide the file_format and row_format. Some other I_S tables provide clues of file_per_table.