DatabaseError:(1071,'指定密钥太长;最大密钥长度为767字节')

ogz*_*gzd 4 python mysql django

我有一个django项目,我想进行一些单元测试.当我尝试: python manage.py test它抛出此错误,我在这里找不到有关它的更多信息.

我的数据库设置settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',           
        'PORT': '3306', 
    }
} 
Run Code Online (Sandbox Code Playgroud)

它看起来像是与之相关的东西InnoDB,MyISAM但我不知道出了什么问题以及如何解决它.谢谢!

django版本:1.5.4
mysql版本:5.5

此外,unique=True任何django型号都没有设置.

小智 9

解决方案是

ALTER DATABASE `databasename` CHARACTER SET utf8; 
Run Code Online (Sandbox Code Playgroud)

已经暴露在这里

/sf/answers/3035610231/


ogz*_*gzd 2

我找到了自己的解决方案。

如果你的my.cnf

 character-set-server = utf8mb4
 collation-server = utf8mb4_unicode_ci
Run Code Online (Sandbox Code Playgroud)

然后它会产生“字节过多”问题。将其恢复到原来的样子utf8,这很有帮助。