jumpserver mysql1071问题(和其他python mysql问题类似)mysql Specified key was too long

数据库

1071 问题 键过长 具体解释可以查mysql报错大全 出现这个问题,应该最先检查所运行实例的字符集状态,如:

我这边是使用了utf8mb4 编码,jumpserver openstack 等程序设计时一般采用utf8普通编码

utf8mb4顾名思义最大长度单个字符4字节,会使字段和键长度加长,而mysql默认情况下单个列的索引不能超过767位(不同版本可能存在差异)故很容易出现问题,遇到这些特定程序,在创建数据库时,使用

 

这样的形式指定字符集才是最佳实践,实际使用中,无需兼容4字节中文(怕不是火星文)默认使用utf8 比较经济,兼容性也尚可,兼容特殊字符可以考虑utf8mb4

其他情况下 数据库表采用utf8编码,其中varchar(255)的column进行了唯一键索引,也容易出现该问题
继续阅读