2011-05-27 148 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擴展你好,我希望你能解決這個問題。

相關問題