1. 配置外接数据库
1.1 外接数据库配置入口
外接数据库的配置入口,有三种形式:
1)超级管理员第一次登录数据决策系统时,即可为系统配置外接数据库。如下图所示:
2)对于使用内置数据库的系统,管理员登录数据决策系统,点击「管理系统>系统管理>常规>外接数据库>待配置」,可为系统第一次配置外接数据库。如下图所示:
3)对于已启用外接数据库的系统,管理员登录数据决策系统,点击「管理系统>系统管理>常规>外接数据库>已配置」,可为系统迁移至新的外接数据库。如下图所示:
1.2 配置外接数据库
进入到外接数据库配置界面后,选择数据库类型,输入实际数据库相应的信息即可。如下图所示:
1.2.1 设置项
各设置项说明如下表所示:
设置项 | 说明 |
数据库类型 | 选择 MySQL |
驱动 | 手动修改为com.mysql.cj.jdbc.Driver 请确保已按照 2.4 节更换驱动,且工程中不存在其他版本的 MySQL 驱动 |
数据库名称 | 2.3 节新建的数据库名称 禁止与其他工程共用数据库,建议新建数据库 数据库名称只允许包含数字、字母、下划线和「.」 |
用户名/主机/密码/端口 | 根据本地数据库实际情况填写 主机名称只允许包含数字、字母、下划线、「-」和「.」 用户需要具备 create、delete、alter、update、select、insert、index 权限 |
数据库连接URL | 手动修改,格式如下,其中IP:端口号/数据库名称需要自行调整: jdbc:mysql://IP:端口号/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL |
1.2.2 迁移数据至要启用的数据库
用户可根据自身需求选择是否勾选「迁移数据至要启用的数据库」按钮。具体如下:
1)勾选「迁移数据至要启用的数据库」,新外接数据库为空
点击「启用新数据库」后,会将原 finedb 数据库的平台数据迁移到新外接数据库中。
2)勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据
点击「启用新数据库」后,跳出提示「该数据库已存在平台数据,导入数据前将清空原有平台数据,确认连接该数据库?」。
点击「确定」将清空原有平台数据,将原 finedb 数据库的平台数据迁移到新外接数据库中。
3)不勾选「迁移数据至要启用的数据库」,新外接数据库为空
点击「启用新数据库」后,跳出提示「目标数据库为新数据库,将当前数据迁移至目标数据库后方能使用」。
点击「确定」,将原 finedb 数据库的平台数据迁移到新外接数据库中。
4)不勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据
点击「启用新数据库」后,工程会自动检测目标数据库中数据对应的 JAR 包版本和当前工程的 JAR 包版本是否一致。
- 若不一致,则跳出提示「无法启用!启用新数据库需要的工程版本:XXX。当前工程版本:XXX。请确保工程版本一致!」。无法进行外接数据库配置。
- 若 JAR 包版本一致,且原 finedb 数据库为内置数据库,则直接启用新外接数据库。
- 若 JAR 包版本一致,且原 finedb 数据库为外接数据库,迁移前将自动备份原数据库的配置信息,在webapps\webroot\WEB-INF\config目录下生成db.properties.bak文件,并直接启用新外接数据库。如下图所示:
1.3 迁移成功
等待一段时间,迁移成功后,根据迁移时的情况,可能会跳出不同的弹窗提示。
注:请勿在迁移过程中刷新页面。
1)新外接数据库,使用了原 finedb 数据库的数据。
则提示「已成功启用目标数据库」。点击「确定」即可,迁移成功。如下图所示:
2)新外接数据库,使用了该数据库中原有的数据,且原 finedb 数据库为内置数据库。
则提示「已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启工程以确保正常使用」。
点击「确定」后,重启报表工程,方迁移成功。如下图所示:
3)新外接数据库,使用了该数据库中原有的数据,且原 finedb 数据库为外接数据库。
则跳出两个提示:
- 已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启工程以确保正常使用
- 原数据库配置已备份至config文件夹下,如有需要可以使用备份文件还原数据库配置
点击「确定」后,重启报表工程,方迁移成功。如下图所示:
2. 注意事项
2.1 删除内置库数据连接
「内置 FineDB 数据库」为HSQL数据库,使用时会建立内存数据库,数据量大时会占用大量内存。
因此配置完外接数据库后,请检查数据连接中是否存在「内置 FineDB 数据库」的数据连接。
若存在相关数据连接,请及时删除,否则会持续占用服务器内存。
2.2 修改数据库排序规则
如果一开始数据库排序规则没有设置 utf8_bin ,但已经迁移过去了,那么有两张表 fine_conf_entity、 fine_conf_classname 需要修改为 utf8_bin,下面以 fine_conf_entity 为例:
1)查询当前的字符集排序规则
show full columns from fine_conf_entity
2)设置字符集排序规则为 utf8_bin
- 设置列的默认校验规则
ALTER TABLE fine_conf_entity MODIFY id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin;
- 设置表的校验规则
ALTER TABLE fine_conf_entity DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
3)查看是否修改成功
show full columns from fine_conf_entity
4)用上面1)2)3)相同的步骤将 fine_conf_entity 替换为 fine_conf_classname 表,设置如下图所示:
总结
帆软FineReport用户可根据自身需求选择是否勾选帆软报表分析与制作「迁移数据至要启用的数据库」按钮。具体如下:
1)勾选数据大屏建设「迁移数据至要启用的数据库」,新外接数据库为空
点击「启用新数据库」后,会将原 finedb 数据库的平台数据迁移到新外接数据库中。
2)勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据
点击「启用新数据库」后,跳出提示「该数据库已存在平台数据,导入数据前将清空原有平台数据,确认连接该数据库?」。
点击「确定」将清空原有平台数据,将原 finedb 数据库的平台数据迁移到新外接数据库中。