今天修改mysql数据库中varchar的长度,本来默认长度是可以输入255的,但是一输入发现报错:Specified key was too long; max key length is 767 bytes;
结果经过调查之后才发现,原来是数据库有一个系统变量 innodb_large_prefix 禁用了,所以长度最长不能超过767个字节(放开了以后最大字节数不能超过3072个字节)。
解决方法:
1 把系统变量innodb_large_prefix 设置成放开;
2 修改varchar的长度,少于767个字节。
查看你的数据库是否禁用了innodb_large_prefix(普通用户是没有查看的权限的):
mysql> show variables like 'innodb_large_prefix'
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_large_prefix | OFF |
+---------------------+-------+
1 row in set (0.00 sec)
这篇文章说的比较详细:https://blog.csdn.net/chenjianhuideyueding/article/details/88426021