(本文档仅供参考)
问题说明
通过exe在windows下部署Smartbi,运行一段时间后启动失败,经检查是由于mysql启动失败,其中mysql的启动日志可以在部署目录的mysql/data目录下获取,通常是会有一个后缀为err的文件,打开后查看最新的日志即可:
InnoDB: Trying to access page number 145058 in space 1575, space name smartbidemo/t_operationlog_detail, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server
或是存在以下两个前提条件,可参考此wiki的方案:
1、日志表提示表空间不足的问题
2、mysql的版本检测,判断是版本为5.7.25,32位的mysql:
解决方案
此问题是由于2022年6月22号之前的exe安装包中内置的mysql是32位,32位的单个表的最大存储是4GB,再有数据进行插入则会提示超出边界,因此导致mysql启动失败。
资料说明参考:https://blog.csdn.net/weixin_43230594/article/details/125935071
对此建议是将mysql升级到64位解决,升级步骤参考:
注意:
1、更新前做好备份,包括知识库、整个mysql文件夹的备份。
2、mysql 8.0及以上的版本不能使用此wiki的方式进行升级
1、备份知识库,知识库备份参考wiki文档:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=44500250
2、停止mysql服务后,将整个mysql的目录备份,如若是更新mysql出现问题,只要把备份的mysql目录换到原本mysql目录即可。
如若是此时mysql已经无法正常启动,则直接mysql文件夹备份即可。
如下图,将整个mysql文件夹进行备份:
3、下载64位的5.7版本的mysql(注意版本号要大于等于5.7.25,且为64位的版本,再次提醒:mysql 8.0及以上的版本不能使用此wiki的方式进行升级),下载地址:https://downloads.mysql.com/archives/community/
4、下载完之后,通过文件替换的方式进行更新:
①找到mysql.exe、mysqld.exe、mysqldump.exe文件,替换mysql/bin目录下的这三个文件:
②将share目录进行替换:
5、验证mysql版本
进入mysql部署的bin目录下,执行mysql.exe --version查看查看版本,如下图,说明版本已更新成功。
注意,如果检查mysql版本提示缺依赖,需要安装64位的 vc ++ 2013 版本的vclib库:vclib.exe
6、启动mysql服务
如若是升级失败需要回退,则将此前备份的整个mysql目录恢复即可。