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.0\webapps\webroot\WEB-INF\config下的后缀名为 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: '\xE6\xA8\xA1\xE6\x9D\xBF...' for column 'id' at row 1
原因分析:
检查确保是有权限的
Incorrect string value: '\xE6\xA8\xA1\xE6\x9D\xBF...' 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%\designerbackup\2019.05.29.16.38.25.702\fine-swift-log-adaptor-10.0.jar
注:数据迁移成功后,将 jar 包重新放回工程并重启,swift 表中数据会重新配置且之前的日志无法查询。
2.6 集群环境下 FineDB 迁移失败
问题描述:
集群环境下迁移 FineDB 数据库,使用平台功能迁移,出现如下图所示的界面后,点击登录会反复刷新此界面。
原因分析:
集群环境下的迁移操作方法出错。
解决方案:
需要把一个节点关了,然后对另一个节点进行迁移,迁移成功后,把 config 文件复制到没迁移的节点,然后再启动。
2.7 数据库迁移后升级 JAR ,无法打开平台
问题描述:
用户已配置外接数据库,升级 JAR 后,无法打开平台,报错:TASKNAMECALCCULATEATEONCE 标识符和 USERALIAS 标识符无效
原因分析:
进行迁移用户没有 alter 权限,无法生成字段。
解决方案:
给迁移的用户授权 alter 权限。