安装OPENCMS过程记录

今天尝试安装个人网站,或者说是内容管理系统,wordpress 是PHP的,所以上网找了一个免费的,在知乎上基于Java的开源CMS有哪些推荐,各自特点是什么 - 知乎 (zhihu.com)

找了这个opencms,据说是免费,安装包两百多兆,解压后,按照里面文件的提示,copy到tomcat目录下,然后启动tomcat, 文件由servlet解压为目录,然后在浏览器中输入地址localhost:8080/opencms/setup, 开始安装,

在这个页面,开始提示找不到DB,把mysql的bin目录放在系统变量后解决。

接着,提示root密码无效,btsoft自带的mysql5.5 在终端可以无需密码进入,也可以用密码进入,可能无密码进入的不是root ?

在宝塔面板中改密码后解决。

然后开始继续操作,这回提示

java.sql.SQLSyntaxErrorException: (conn=22) Specified key was too long; max key length is 1000 bytes

在MySQL启动配置文件my.ini中添加或修改:

default-storage-engine=INNODB

原因:

activiti在MySQL中对表建立索引时,key的长度超过1000 bytes了,由于MySQL默认使用MyISAM engine,而MyLSAM引擎会有key长度的限制, 超过1000bytes就会报错,所以要将Mysql引擎修改为Innodb。

然后

mysql索引长度超过767bytes, Specified key was too long; max key length is 767 bytes

原因:
msyql5.6及以前版本, 默认索引最大长度767bytes,若使用utf8mb4格式编码(utf8字符占用3字节,utf8mb4字符占用4字节), 则单个字段长度不能超过191, 5.7及之后版本, 限制放开到3072 bytes。

PS: 由于mysql的utf8编码并不是真正UTF-8,详细介绍请自行百度google,推荐使用utf8mb4,这个是通常所说的UTF-8。而utf8mb4的字符占用4字节,所以相较于utf8的占用3字节,更容易出现上面这种索引长度超限的问题。

在5.6及之前版本,若有索引超限的情况,可使用如下方法:
查看配置:

show variables like 'innodb_large_prefix';

show variables like 'innodb_file_format';

修改为如下配置:

set global innodb_large_prefix=1;

set global innodb_file_format=BARRACUDA;

建表时需要指定ROW_FORMAT为dynamic或compressed

eg:

CREATE TABLE IMPORTS

(

`ID` int(10) NOT NULL AUTO_INCREMENT COMMENT '资产ID',

PKG_ID int(10) NOT NULL COMMENT '资产ID',

CLASS_NAME varchar(255) NOT NULL COMMENT '类名',

AUTO_ADD int(1) DEFAULT 1 COMMENT '是否自动添加',

UPDATE_TIME timestamp COMMENT '最后修改时间',

CREATE_TIME timestamp COMMENT '创建时间',

CREATED_BY varchar(50) NOT NULL COMMENT '操作人员名称',

UPDATED_BY varchar(50) NOT NULL COMMENT '操作人员名称',

PRIMARY KEY (`ID`),

UNIQUE (PKG_ID, CLASS_NAME)

) ENGINE=InnoDB ROW_FORMAT=dynamic DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
————————————————
版权声明:本文为CSDN博主「Sword_Shi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jian876601394/article/details/94313071

既然MYSQL 5.7以上的版本就没有这个限制,那么在宝塔面板中更改版本5.7,重启,问题解决。

环境变量还没改为5.7,那么opencms是怎么找到5.7的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值