问题
create table: Specified key was too long; max key length is 767 bytes
原因
数据库表采用 utf8 编码, 其中 varchar(255) 的 column 进行了唯一键索引
而 MySQL 默认情况下单个列的索引不能超过 767 位 (不同版本可能存在差异)
于是 utf8 字符编码下, 255*3 byte 超过限制
解决
1 使用 innodb 引擎;
2 启用 innodb_large_prefix 选项, 将约束项扩展至 3072byte;
3 重新创建数据库;
my.cnf 配置:
- default-storage-engine=INNODB
- innodb_large_prefix=on
来源: http://www.bubuko.com/infodetail-3019082.html