指定的密钥太长;最大密钥长度为1000个字节

问题描述

| 通过MysqL转储导入import Joomla 1.5数据库,但它给出错误“ 1071-指定的密钥太长;最大密钥长度为1000字节” culrpit sql语句是:
    CREATE TABLE  `jos_core_acl_aro` (

 `id` INT( 11 ) NOT NULL AUTO_INCREMENT,`section_value` VARCHAR( 240 ) NOT NULL DEFAULT  \'0\',`value` VARCHAR( 240 ) NOT NULL,`order_value` INT( 11 ) NOT NULL DEFAULT  \'0\',`name` VARCHAR( 255 ) NOT NULL,`hidden` INT( 11 ) NOT NULL DEFAULT  \'0\',PRIMARY KEY (  `id` ),UNIQUE KEY (  `section_value`,`value` ),KEY  `jos_gacl_hidden_aro` (  `hidden` )
  ) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =11;

MysqL said:

   #1071 - Specified key was too long; max key length is 1000 bytes
数据库和目标数据库是UTF8。我仍然不知道为什么会发生此错误:(     

解决方法

        mysql将utf8编码的字符存储为3个字节 你的钥匙
UNIQUE KEY (  `section_value`,`value` ),
大小为(240 + 240)* 3个字节,大于1000个限制     ,        在php配置中可能会遇到错误,问题是您没有激活mbstring扩展,因此,mysql无法分离或剪切字符串,这可以由多字节字符串假定,请尝试激活mbstring扩展在您的php.ini中,希望您解决该问题。