Specified key was too long; max key length is 1000

2019-05-10 01:11发布

importimg Joomla 1.5 database via mySQL dump but it gives error "1071 - Specified key was too long; max key length is 1000 bytes"

the culrpit sql statement is:

    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

The source & destination database is UTF8. I still don't know why this error occurs :(

2条回答
你好瞎i
2楼-- · 2019-05-10 01:24

The error can be encountered in the php configuration, the problem is that you don't have activate the mbstring extention, so, mysql can't separate or cut the string, and this can be assumed by a multibyte string, try activate mbstring extention in your php.ini and I hope you resolve the problem.

查看更多
Viruses.
3楼-- · 2019-05-10 01:36

mysql stores utf8 encoded chars as 3 bytes

your key

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

has a size of (240 + 240) * 3 bytes, which is greater then 1000 limit

查看更多
登录 后发表回答