Указанный ключ был слишком длинным;максимальная длина ключа 1000 байтов - PullRequest
3 голосов
/ 28 мая 2011

импортирует базу данных Joomla 1.5 через дамп mySQL, но выдает ошибку «1071 - указанный ключ слишком длинный; максимальная длина ключа составляет 1000 байтов»

утверждение sqrpit 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. Я до сих пор не знаю, почему возникает эта ошибка: (

Ответы [ 2 ]

6 голосов
/ 28 мая 2011

mysql хранит кодированные в utf8 символы как 3 байта

ваш ключ

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

имеет размер (240 + 240) * 3 байта, превышающий предел 1000

0 голосов
/ 27 марта 2013

Ошибка может возникнуть в конфигурации php, проблема в том, что у вас нет активации расширения mbstring, поэтому mysql не может разделить или обрезать строку, и это может быть принято многобайтовой строкой, попробуйте активируйте расширение mbstring в вашем php.ini, и я надеюсь, что вы решите проблему.

...