发新话题
打印

[Bug] 4.5.4全球版安装第二步出错

4.5.4全球版安装第二步出错

数据库插入数据出错!
无法继续安装。

mambo:4.5.4 全球版
mysql:4.1
错误记录:

SQL=Specified key was too long; max key length is 1000 bytes:
- - - - - - - - - -
# Table structure for table `mos_core_acl_aro`

CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(240) NOT NULL default '0',
  `value` varchar(240) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  UNIQUE KEY `mos_gacl_section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
  KEY `mos_gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM
= = = = = = = = = =

TOP

数据库不要使用 utf-8 编码

或者用 mysql4.0

TOP

同病

我也遇到,即使后台已经没有选用utf-8也不行


数据库插入数据出错!
无法继续安装。

错误记录:

SQL=Specified key was too long; max key length is 1000 bytes:
- - - - - - - - - -
# Table structure for table `mos_core_acl_aro`

CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(240) NOT NULL default '0',
  `value` varchar(240) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  UNIQUE KEY `mos_gacl_section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
  KEY `mos_gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM
= = = = = = = = = =

TOP

feedback!

二楼兄台的回答似乎不在要害上.我反复尝试了各种代码,甚至全部使用English还是会有这个问题,请再看看问题出在哪?

SQL=Specified key was too long; max key length is 1000 bytes:
- - - - - - - - - -
# Table structure for table `mos_core_acl_aro`

CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(240) NOT NULL default '0',
  `value` varchar(240) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  UNIQUE KEY `mos_gacl_section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
  KEY `mos_gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM
= = = = = = = = = =

TOP

mysql4.1的编码是在安装时候设置的,请用 latin1 编码。

TOP

急!!!!!!!!

我的是MySQL5.0.5   曼波4.5.4  全球版
第一步用的是默认的安装语言(后来再换UTF8也是一样的提示)

安装到第二步错误提示:

SQL=Specified key was too long; max key length is 1000 bytes:
- - - - - - - - - -
# Table structure for table `mos_core_acl_aro`

CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(240) NOT NULL default '0',
  `value` varchar(240) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  UNIQUE KEY `mos_gacl_section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
  KEY `mos_gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM
= = = = = = = = = =

请求帮助!!!

TOP

我也遇到这样的错误,现已解决,解决方法是参考lang3 说的:
mysql4.1的编码是在安装时候设置的,请用 latin1 编码。

我用的是虚拟主机空间,无法在安装数据库时设置编码,但是在建表时改一下这张表的建表语句即可通过。
找到安装目录installation\sql下的mambo.sql文件,找到mos_core_acl_aro表的建表语句,在最后改成这样即可:
CREATE TABLE `#__core_acl_aro` (
……
……
) TYPE=MyISAM ENGINE=InnoDB DEFAULT CHARSET=latin1;

以上红色字体是我加的,然后重新上传这个文件,继续进行安装第二步,顺利通过。

:)

TOP

其实问题写的明明白白的,就是Mysql在的索引列超过了1000个字节,有两个解决方法。
1. 是删除不必要的索引列,
2. 是修改要索引的列的长度。动不动就用255什么的。

具体的,看Mysql报告的错误内容中,有这两项,
UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  UNIQUE KEY `mos_gacl_section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
  KEY `mos_gacl_hidden_aro` (`hidden`)

不明白为什么要将同一个索引建立两边?所以我各字删除一行,变成
CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(240) NOT NULL default '0',
  `value` varchar(240) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
) TYPE=MyISAM

然后计算一下索引现在所占的比例,只算大头,也就是section_value, value这两项
一共是240 + 255 = 495个字符。
对于用mysql的字符集是Latin-1的兄弟们应该是可以正常执行了。

具体的,需要修改安装文件
installation\sql\upgrade4014to45.sql
删除800和802行,把801行最后的逗号删除
\installation\sql\mambo_germanf.sql' :
删除746和748行,把747行最后的逗号删除
\WWW\installation\sql\mambo_germani.sql' :
删除746和748行,把747行最后的逗号删除
\installation\sql\mambo.sql' :
删除734和736行,把735行最后的逗号删除



但是,如果你的Mysql用的是UTF-8的编码。因为一个UTF-8字符要占用3个bytes
实际上还是超过1000bytes的限制。
现在只有两个办法。
i. 将section_value和value两项修改成小于333(333 * 3 = 999 < 1000)
ii. 删除索引。

我的选择是i. 因为删除索引,会导致大容量的访问需求下数据库速度变得非常缓慢。
而让用户少输入几个汉字,估计问题不大:)

那么就需要继续修改为
CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(160) NOT NULL default '0',
  `value` varchar(160) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
) TYPE=MyISAM
这次应该就OK了。


也就是修改
installation\sql\upgrade4014to45.sql
的793和794行
\installation\sql\mambo_germanf.sql' :
的739和740行
\WWW\installation\sql\mambo_germani.sql' :
的739和740行
\installation\sql\mambo.sql' :
的727和728行

好了,安装可以正常进行了:)

TOP

我也遇到错误了,刚下载的4.54,mysql5.
提示信息如下
SQL=BLOB/TEXT column 'text' can't have a default value:
- - - - - - - - - -
# Table structure for table `mos_poll_data`

CREATE TABLE `mos_poll_data` (
  `id` int(11) NOT NULL auto_increment,
  `pollid` int(4) NOT NULL default '0',
  `text` text NOT NULL default '',
  `hits` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `pollid` (`pollid`,`text`(1))
) TYPE=MyISAM
= = = = = = = = = =

SQL=Specified key was too long; max key length is 1000 bytes:
- - - - - - - - - -
# Table structure for table `mos_core_acl_aro`

CREATE TABLE `mos_core_acl_aro` (
  `aro_id` int(11) NOT NULL auto_increment,
  `section_value` varchar(240) NOT NULL default '0',
  `value` varchar(240) NOT NULL default '',
  `order_value` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `hidden` int(11) NOT NULL default '0',
  PRIMARY KEY  (`aro_id`),
  UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
  UNIQUE KEY `mos_gacl_section_value_value_aro` (`section_value`,`value`),
  KEY `hidden_aro` (`hidden`),
  KEY `mos_gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
# Dumping data for table `mos_poll_data`

INSERT INTO `mos_poll_data` VALUES (20, 15, '', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (19, 15, '', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (18, 15, '', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (17, 15, 'Scott Adams', 1)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (16, 15, 'Tim Berners-Lee', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (15, 15, 'Linus Torvalds', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (14, 15, 'Bill Gates', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (13, 15, 'Steve Jobs', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (21, 15, '', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (22, 15, '', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (23, 15, '', 0)
= = = = = = = = = =

SQL=Table 'gm.mos_poll_data' doesn't exist:
- - - - - - - - - -
INSERT INTO `mos_poll_data` VALUES (24, 15, '', 0)
= = = = = = = = = =

TOP

请问这个4.5.4全球版,是不是不支持mysql5.0的啊?
我的也是报这样的错啊。

TOP

请问有没有人知道怎么解决的吗?难道我得换mySQL?

在线等啊!!

TOP

把Unique KEy 修改为 Fulltext key 就可以了。  Mysql 5.0 可以用。

TOP

这个问题我这是这样解决的

进入phpmyadmin的管理界面新建一个数据库(空的即可),建此数据库的字符集选”latin1_swedish_ci“,待此数据库建成功后,进入到mambo cms的安装步骤,在第二步这前的那个界面中数据库名称一项中填你刚才建的那个数据库名,然后点击“第二步”按钮,直至成功。

祝大家好运。

TOP

发新话题