1. 概述编辑
本文列举 配置外接数据库 时,可能出现的报错和解决方案。
2. 示例编辑
2.1 数据库连接失败
问题现象:
当出现配置 SQL Server 和 Oracle等含有模式的数据库时,出现报错:数据库连接失败,wait millis 10000,active0,maxActive 50
如下图所示:
解决方案:
首先要确认数据库名称,主机地址,端口用户名和密码是否正确,再确认此服务器此端口是否开放给其他电脑。可在其他地方进行数据库连接测试。
其次若确认完毕后仍出现报错,则需要更改模式使其与用户名一样,可解决这个问题
如下图画红框部分:
2.2 用户 root 登录失败
问题现象:
报错信息为:用户 root 登录失败,ClientConnectionId:e484a26e-8f2b-4e28-b9e4-32798ec032b7 ,以及外置数据无法连接配置等报错
解决方案:
第二种报错是由于 FineReport 外置数据库的配置错误,则需要删除 FineReport 的外置数据库的配置信息,进行外置数据库重新配置。
删除FineReport_10.0webappswebrootWEB-INFconfig下的后缀名为 db.properties 文件。然后就可以重新对 FineReport 外置数据库进行配置
2.3 could not execute batch
问题描述:
配置外接数据库 MySQL 报错 could not execute batch
报错日志如下所示:
16:59:48 Thread-45 ERROR [standard] could not execute batch
com.fr.third.org.hibernate.exception.GenericJDBCException: could not execute batch
......Caused by: java.sql.SQLException:Incorrect string value: 'xE6xA8xA1xE6x9DxBF...' for column 'id' at row 1
原因分析:
检查确保是有权限的
Incorrect string value: 'xE6xA8xA1xE6x9DxBF...' for column 'id' at row 1 应当是数据库编码的原因。
解决方案:
查看客户建 FineDB 数据库的语句:create database finedb
发现没有加约束条件,将语句改为:create database finedb DEFAULT CHARSET utf8 COLLATE utf8_bin
导入成功。
2.4 Oracle could not execute batch
问题描述:
配置外接数据库 Oracle 报错 Oracle could not execute batch
解决方案:
模式填thin就会报错,改成用户名。
2.5 外接 Oracle9i 数据迁移失败
问题描述:
外接 Oracle9i 数据库时,数据迁移中途卡住,数据迁移失败。
解决方案:
Oracle9i 对数据库表的数据长度有限制,swift 表数据过长导致迁移至 Oracle9i 失败。
先将工程目录下 fine-swift-log-adaptor-10.0.jar 包删除,重启工程后再执行数据迁移即可,jar 包路径 %FR_HOME%designerbackup2019.05.29.16.38.25.702fine-swift-log-adaptor-10.0.jar
注:数据迁移成功后,将 jar 包重新放回工程并重启,swift 表中数据会重新配置且之前的日志无法查询。
2.6 集群环境下 FineDB 迁移失败
问题描述:
集群环境下迁移 FineDB 数据库,使用平台功能迁移,出现如下图所示的界面后,点击登录会反复刷新此界面。
原因分析:
集群环境下的迁移操作方法出错。
解决方案:
需要把一个节点关了,然后对另一个节点进行迁移,迁移成功后,把 config 文件复制到没迁移的节点,然后再启动。
2.7 数据库迁移后升级 JAR ,无法打开平台
问题描述:
用户已配置外接数据库,升级 JAR 后,无法打开平台,报错:TASKNAMECALCCULATEATEONCE 标识符和 USERALIAS 标识符无效
原因分析:
进行迁移用户没有 alter 权限,无法生成字段。
解决方案:
给迁移的用户授权 alter 权限。
2.8 升级 JAR ,迁移数据库后,回退 JAR ,平台登录失败
问题描述:
报表工程已迁移至外接数据库,升级 JAR 后,又迁移至另一外接数据库,回退 JAR,发现平台登录失败,显示数据库连接异常,如下图所示:
原因分析:
JAR 回退,但存储外接数据库配置的 db.properties 文件没有跟随其变化。
解决方案:
检查 %FR_HOME%webappswebrootWEB-INFconfig 路径下 db.properties 文件,手动修改相关配置。
举例:一工程迁移到 MySQL8 数据库,升级 JAR 后 重新迁移到 MySQL5.7.28 数据库,回退工程,启动失败,前台显示连接不上数据库,将db. properties中方言的 8 改为 5 即可。
修改前:
hibernate.dialect=com.fr.third.org.hibernate.dialect.MySQL8Dialect
修改后:
hibernate.dialect=com.fr.third.org.hibernate.dialect.MySQL5Dialect