innodb 8.1 Specified key was too long; max key length is 3072 bytes
时间: 2023-11-30 10:42:18 浏览: 83
mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法
当使用InnoDB表的DYNAMIC和COMPRESSED行格式时,可以启用innodb_large_prefix选项以允许索引键前缀超过767个字节(最多3072个字节)。但是,创建这样的表还需要使用innodb_file_format = barracuda和innodb_file_per_table = true选项值。有关在各种设置下与索引键前缀相关的最大值,请参见第14.9.7节“ InnoDB表的限制”。如果您遇到“Specified key was too long; max key length is 3072 bytes”错误,则可以通过以下两种方法解决该问题:
1. 将innodb_large_prefix设置为ON
```sql
SET GLOBAL innodb_large_prefix = ON;
```
2. 缩短索引键长度
您可以缩短索引键长度以适应限制。例如,将VARCHAR(255)更改为VARCHAR(191)。
阅读全文