• 愤怒的小冬瓜 愤怒的 小冬瓜
  • 2022-09-03

由于MySQL的Innodb引擎表索引字段长度的限制为767字节,因此对于多字节字符集的大字段或者多字段组合,创建索引时会出现此错误。


以utf8mb4字符集字符串类型字段为例,utf8mb4是4字节字符集,则默认支持的索引字段最大长度是191字符(767字节/4字节每字符≈191字符), 因此在varchar(255)或char(255)类型字段上创建索引会失败。

phpmyadmin中执行命令行

SET GLOBAL innodb_file_format = Barracuda;

SET GLOBAL innodb_file_per_table = ON;

SET GLOBAL innodb_large_prefix = ON;

SET GLOBAL innodb_default_row_format = 'DYNAMIC';

或者在配置文件中添加如下

D:\wamp64\bin\mariadb\mariadb10.6.5\my.ini 添加如下

## Innodb settings to bypass error of max size 737
innodb-file-format=barracuda
innodb-file-per-table=ON
innodb-large-prefix=ON
## Above 3 didnot work so i added below
innodb_default_row_format = 'DYNAMIC'
标签:   mysql