指定的键过长;最大键长度为1000字节。

3

通过mySQL转储导入Joomla 1.5数据库,但出现错误"1071 - 指定的键太长;最大键长度为1000字节"

罪魁祸首的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编码。我仍然不知道为什么会出现这个错误:(


这个问题的答案已经在这里那里给出了。 - dma_k
2个回答

6

MySQL将UTF8编码的字符存储为3个字节。

你的密钥

UNIQUE KEY (  `section_value` ,  `value` ) ,

其大小为(240 + 240) * 3字节,大于1000限制。


-2

这个错误可能出现在php配置中,问题是您没有激活mbstring扩展,因此mysql无法分离或切割字符串,这可以通过多字节字符串来实现,尝试在php.ini中激活mbstring扩展,希望您能解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接