2011-05-27 104 views
3

importimg的Joomla 1.5通过MySQL的转储数据库,但它给错误“1071 - 指定的键过长,最大密钥长度为1000个字节”指定的密钥太长;最大密钥长度为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。我仍然不知道为什么这个错误发生:(

+0

这个问题的答案已经给出[这里](http://stackoverflow.com/questions/3489041/mysqlerror-specified-key-was-too-long-max-key-length-is-1000-bytes/3489331#3489331)和[there](http://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-767-bytes/1814594#1814594) 。 – 2011-11-10 09:17:35

回答

6

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

你的关键

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

的大小为(240 + 240)* 3个字节,这大于1000的限制

+0

听不懂,但这是天才! THUMB UP FTW !!! – 2011-05-28 22:53:07

-1

在php配置中可能会遇到错误,问题是你没有激活mbstring扩展,所以,mysql不能分开或切断字符串,这可以是由多字节字符串假设,请尝试在您的php.i中激活mbstring扩展你好,我希望你能解决这个问题。

相关问题