问题描述
|
通过mySQL转储导入import Joomla 1.5数据库,但它给出错误“ 1071-指定的密钥太长;最大密钥长度为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。我仍然不知道为什么会发生此错误:(
解决方法
mysql将utf8编码的字符存储为3个字节
你的钥匙
UNIQUE KEY ( `section_value`,`value` ),
大小为(240 + 240)* 3个字节,大于1000个限制
, 在php配置中可能会遇到错误,问题是您没有激活mbstring扩展,因此,mysql无法分离或剪切字符串,这可以由多字节字符串假定,请尝试激活mbstring扩展在您的php.ini中,希望您解决该问题。