报表设计-FineReport 配置MySQL5外接数据库

news2024/10/5 16:30:46

1. 概述

 1.1 版本

报表服务器版本

功能变更

11.0

-

11.0.3

1)首次配置外接数据库时,支持自行选择是否「迁移数据至要启用的数据库」

2)迁移外接数据库的过程提示细化,方便用户了解迁移进度

1.2 功能简介

报表系统配置外接数据库后,遇到集群环境或数据量较大情况时,可保证报表系统的稳定性。

用户可在「初始化时」配置外接数据库或在「平台中」配置 MySQL 5 版本的外接数据库。

注:若配置了外接数据库,请勿轻易修改外接数据库的用户名和密码,否则会导致工程启动失败。

2. 准备外接数据库

 2.1 数据库版本

外接数据库支持的类型及版本如下表所示:

数据库类型

报表服务器版本

支持数据库版本

MySQL5

11.0

5.1.73

5.5.31、5.5.46、5.5.56

5.6.22、5.6.31

5.7.16

RDS MySQL

11.0

-

2.2 硬件配置

配置类型

最低配置

推荐配置

内存

1GB

2GB

CPU

4核

8核

网速

50Mbps

100Mbps

占用空间

1GB

2GB

磁盘读写速度

50MB/s

100MB/s

2.3 新建数据库

新建一个数据库,用于存储平台相关数据。

标准建库语句:CREATE DATABASE `finedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

注:不同 FineReport 工程,不可共用同一个外接数据库,否则数据可能会出现错乱。

推荐设置数据库默认字符集为 utf8 ,默认排序规则为 utf8_bin。如下图所示:

数据库名:

只允许包含数字、字母、下划线和「.」

字符集:

1)平台外接 MySQL 数据库时,需要设置字符集排序规则(大小写敏感)。

2)推荐使用 utf8 – UTF-8 Unicode 编码

3)不支持 utf8mb4 编码

排序规则:

MySQL 中存在多种格式的 utf8 编码的排序规则,其中最常见的两种如下表所示:

1)utf8_bin(推荐)

定义:将字符串中的每一个字符用二进制数据存储,区分大小写

示例:Alex 和 alex 被认为是两个不同的值

1)utf8_general_ci

定义:ci 为 case insensitive 的缩写,即大小写不敏感,为 utf8 默认编码

示例:Alex 和 alex 被认为是相同的值

3. 配置外接数据库

 3.1 外接数据库配置入口

外接数据库的配置入口,有三种形式:

1)超级管理员第一次登录数据决策系统时,即可为系统配置外接数据库。如下图所示:

2)对于使用内置数据库的系统,管理员登录数据决策系统,点击「管理系统>系统管理>常规>外接数据库>待配置」,可为系统第一次配置外接数据库。如下图所示:

3)对于已启用外接数据库的系统,管理员登录数据决策系统,点击「管理系统>系统管理>常规>外接数据库>已配置」,可为系统迁移至新的外接数据库。如下图所示:

3.2 配置外接数据库

进入到外接数据库配置界面后,选择数据库类型,输入实际数据库相应的信息即可。如下图所示:

3.2.1 设置项

各设置项说明如下表所示:

设置项

说明

数据库类型

选择 MySQL

驱动

FineReport已内置 MySQL5 的驱动,无需修改,会自动配置

数据库名称

2.3 节新建的数据库名称

禁止与其他工程共用数据库,建议新建数据库

数据库名称只允许包含数字、字母、下划线和「.」

用户名/主机/密码/端口

根据本地数据库实际情况填写

主机名称只允许包含数字、字母、下划线、「-」和「.」

用户需要具备 create、delete、alter、update、select、insert、index 权限

3.2.2 迁移数据至要启用的数据库

用户可根据自身需求选择是否勾选「迁移数据至要启用的数据库」按钮。具体如下:

1)勾选「迁移数据至要启用的数据库」,新外接数据库为空

点击「启用新数据库」后,会将原 finedb 数据库的平台数据迁移到新外接数据库中。

2)勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据

点击「启用新数据库」后,跳出提示「该数据库已存在平台数据,导入数据前将清空原有平台数据,确认连接该数据库?」。

点击「确定」将清空原有平台数据,将原 finedb 数据库的平台数据迁移到新外接数据库中。

3)不勾选「迁移数据至要启用的数据库」,新外接数据库为空

点击「启用新数据库」后,跳出提示「目标数据库为新数据库,将当前数据迁移至目标数据库后方能使用」。

点击「确定」,将原 finedb 数据库的平台数据迁移到新外接数据库中。

4)不勾选「迁移数据至要启用的数据库」,新外接数据库中已存在平台数据

点击「启用新数据库」后,工程会自动检测目标数据库中数据对应的 JAR 包版本和当前工程的 JAR 包版本是否一致。

  1. 若不一致,则跳出提示「无法启用!启用新数据库需要的工程版本:XXX。当前工程版本:XXX。请确保工程版本一致!」。无法进行外接数据库配置。

  1. 若 JAR 包版本一致,且原 finedb 数据库为内置数据库,则直接启用新外接数据库。
  1. 若 JAR 包版本一致,且原 finedb 数据库为外接数据库,迁移前将自动备份原数据库的配置信息,在webapps\webroot\WEB-INF\config目录下生成db.properties.bak文件,并直接启用新外接数据库。如下图所示:

3.3 迁移成功

等待一段时间,迁移成功后,根据迁移时的情况,可能会跳出不同的弹窗提示。

注:请勿在迁移过程中刷新页面。

1)新外接数据库,使用了原 finedb 数据库的数据。

则提示「已成功启用目标数据库」。点击「确定」即可,迁移成功。如下图所示:

2)新外接数据库,使用了该数据库中原有的数据,且原 finedb 数据库为内置数据库。

则提示「已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启工程以确保正常使用」。

点击「确定」后,重启报表工程,方迁移成功。如下图所示:

3)新外接数据库,使用了该数据库中原有的数据,且原 finedb 数据库为外接数据库。

则跳出两个提示:

  1. 已成功切换至目标数据库!新旧数据库若存在数据差异可能影响系统运行,建议重启工程以确保正常使用
  1. 原数据库配置已备份至config文件夹下,如有需要可以使用备份文件还原数据库配置

点击「确定」后,重启报表工程,方迁移成功。如下图所示:

4. 注意事项

 4.1 删除内置库数据连接

「内置 FineDB 数据库」为HSQL数据库,使用时会建立内存数据库,数据量大时会占用大量内存。

因此配置完外接数据库后,请检查数据连接中是否存在「内置 FineDB 数据库」的数据连接。

若存在相关数据连接,请及时删除,否则会持续占用服务器内存。

4.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 

  1. 设置列的默认校验规则 

ALTER TABLE fine_conf_entity MODIFY id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin;

  1. 设置表的校验规则 

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占用空间需要结合使用度进行调整,可以根据webapps/webroot/WEB-INF/embed/finedb文件夹大小配置,并根据帆软报表分析与制作实际大小预估未来使用大小,增大1~2倍。推荐内存为预留给工程配置库的内存。外接数据库数据查询与过滤尽量和报表工程在同一网段,避免网络波动等问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐系统遇上深度学习(一四一)-[快手]移动端实时短视频推荐

今天给大家带来CIKM2022应用研究方向最佳论文-来自于快手团队的《Real-time Short Video Recommendation on Mobile Devices》,主要研究在移动端如何做到更好的短视频实时推荐,是一篇不错的落地经验分享的论文,一起来看一下。1、背景近几年来…

LeetCode 323周赛

2500. 删除每行中的最大值 给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。 执行下述操作,直到 grid 变为空矩阵: 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。将删除元素中的最大值与答案相加。 …

【Leetcode】101. 对称二叉树、104. 二叉树的最大深度、226. 翻转二叉树

作者:一个喜欢猫咪的的程序员 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 101. 对称二叉树 104. 二叉树的最大深度 226. 翻转二叉树 101. 对称二…

DJ11 8086系列处理器(第一节课)

目录 一、8086/8088微处理器 二、8086/8088CPU的特点 1. 指令流水线 2. 内存分段管理 3. 支持多处理器系统 三、8088 CPU外部引脚及功能 1. 最小模式下的引脚 2. 最大模式下的引脚 四、8088/8086 CPU 的工作时序 1. 基本概念 2. 总线周期 一、8086/8088微处理器 二、…

软考中级系统集成项目管理工程师怎么自学备考

1、考试内容是什么? 2、备考前要准备什么? 3、如何高效备考? 一、考试内容是什么? 本考试设置的科目包括: (1)系统集成项目管理基础知识,考试时间为150分钟,笔试&am…

IB体育评估哪些内容?

"IB体育"这个词的内涵太广了,覆盖的课程也很多!这个IB体育是一般体育课还是某个具体的IB科目呢?是MYP阶段的体育还是DP阶段的呢?其实很多人都是很懵,通过收集资料,可以分享一下,仅供参…

2022年虚拟电厂行业研究报

第一章 行业概况 虚拟电厂(VPP, Virtual Power Plant)本质上是将分布式电源(发电)、可控负荷(用电)、储能等利用计算机通信网络技术将其聚合成一个虚拟的集中式电厂,来为电网提供需求侧响应的“…

4个封神的电脑工具,颠覆你对免费白嫖的认知,干货奉上

闲话少说,直上干货。 1、TinyWow TinyWow虽说是国外网站工具,但不得不承认真的无敌好用,收纳工具超200个,完全免费,无任何弹屏广告,更为良心的是,不需要注册登录,随用随走&#xff0…

专业的方案公司阐述智能硬件产品开发的全过程

现在市场上的方案公司太多,让人应接不暇,当我们要开发一款智能硬件产品的时候,我们要如何去选择方案公司呢?又怎样判断方案公司是否则专业呢?下面沐渥带大家一起来了解下智能硬件产品开发的全过程,大家就知…

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 以及错误总结

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 docker安装未成功 zip安装 1. 下载地址 sonarQube最新版下载地址:(最新版不支持mysql)https://www.sonarqube.org/downloads/7.1版本下载地址:​ ​https://binaries.sonarsource.com…

【UE4 第一人称射击游戏】10-添加冲刺功能

上一篇: 【UE4 第一人称射击游戏】09-添加蹲伏功能 本篇效果: 步骤: 1.在“Character”文件夹内添加一个混合空间 骨架选择“Swat_Skeleton” 命名为“Sprint_BS” 双击打开“Sprint_BS”,将水平和垂直坐标名称分别设为“Direct…

【java】HashMap底层原理实现原理及面试题

目录一.哈希表(散列)1.什么是哈希表2.什么是哈希冲突(面试题)3.解决哈希冲突的方法(面试题)(1) 开放地址法① 线性探查②二次探查③随机探查(2) 再哈希法(3) 链地址法(4)建立公共溢出区二.HashMap1.HashMap的hash()算法(面试)(1)为什么不是h key.hashCode()直接返回&#xff0…

绘制菜单符号的技法

在上一篇文章中,我们了解了如何绘制主题化的和原始未主题化的单选按钮,我曾提到,绘制菜单符号会更加复杂一些。复杂之处在于,这些符号是通过单色位图实现的,而不是漂亮的全彩色位图。 首先,我们将通过一种错…

linux内核调度子系统随笔(一)

调度子系统组件(1) 调度类用于判断接下来运行哪个进程,内核支持不同的调度策略(完全公平调度,实时调度);调度类使得能够以模块化方法实现这些策略; (2) 在选中将要选择的进程后,必须执行底层任务切换;需要与cpu的紧密交互&#x…

信息安全管理体系

环境迁移 Platfor m Ops for AI 作为整合了 DataOps、MLOps、ModelOps 的复杂技术平台,在项目开发时仅使用一套系统无法支撑平台的稳定搭建,往往需要开发系统、集成测试系统、正式 环境系统在项目生命周期 中协作配合。将表、索引、并发程序、配置内容等…

HTML5 新增属性

文章目录HTML5 新增属性公共属性hidden属性draggable属性contenteditable属性data-*属性input元素新增属性autocomplete属性autofocus属性placeholder属性required属性pattern属性form元素新增属性novalidate属性HTML5 新增属性 公共属性 HTML5新增的常见公共属性有4个&#…

在今年的数字生态大会上,云原生数据库前进了一大步

云计算时代,数据库上云已成为产业数字化转型的重要动力。近期,在2022腾讯全球数字生态大会云原生数据库技术探索专场上,腾讯云分享了在云原生数据库领域的技术演进与探索,并就其在不同行业场景中的最佳实践进行了详细讲解&#xf…

【C++初阶】stack、queue和priority_queue的模拟实现

文章目录简介stackqueuepriority_queuestack的模拟实现成员变量emptysizetoppushpopqueue的模拟实现成员变量emptysizetoppushpoppriority_queue的模拟实现成员变量emptysizetoppushpop仿函数完整版代码stack.hqueue.hpriority_queue.htest.cpp简介 stack、queue和priority_qu…

四、SpringBoot Starter组件详解

starter组件实际上就是能够实现自动装配的jar包。 1.starter组件创建流程 假设我现在要集成redis,要拿到redisTemplate对象,怎么做呢? 1.引springboot包; 2.创建RedisTemplate类; 3.写配置类; 4.创建spring.factories文件; 5.打成jar包。 示例如下: 1.创建maven项目…

我的世界MOD制作(2)|| 你的第一个MOD

正文:I. 开发环境配置 我们需要一个带mixin的forge开发环境,这一步相当折磨人,网络不好的话半天时间都得砸这上面,但是不要灰心,过了这个坎接下来基本是顺风顺水。 1. 下载资源 & 修改build.gradle 首先去forge官网…