openEuler Linux 部署 FineBi
openEuler Linux 部署 FineBi
部署环境
| 环境 | 版本 |
|---|---|
| openEuler Linux | 22.03 |
| MySQL | 8.0.35 |
| JDK | 1.8 |
| FineBi | 6.0 |
环境准备
升级系统内核和软件
yum -y update
reboot
安装常用工具软件
yum -y install vim tar net-tools
安装MySQL8
将 MySQL Yum 存储库添加到系统的存储库列表中
sudo yum -y install https://repo.mysql.com//mysql80-community-release-el8-9.noarch.rpm
通过运行以下命令并检查其输出来验证是否已启用和禁用正确的子存储库
sudo yum repolist enabled | grep mysql
通过以下命令安装 MySQL
sudo yum -y install mysql-community-server
启动 MySQL 服务器
使用以下命令启动 MySQL 服务器:
sudo systemctl start mysqld
您可以使用以下命令检查 MySQL 服务器的状态:
sudo systemctl status mysqld
使用以下命令开启自启动 MySQL 服务器:
sudo systemctl enable mysqld
在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:
-
服务器已初始化。
-
SSL 证书和密钥文件在数据目录中生成。
-
validate_password已安装并启用。 -
创建了一个超级用户帐户
'root'@'localhost。超级用户的密码已设置并存储在错误日志文件中。要显示它,请使用以下命令:sudo grep 'temporary password' /var/log/mysqld.log

通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 root 密码:
mysql -uroot -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lihaozhe!!@@1122';
FLUSH PRIVILEGES;
不检查指定为散列值的密码,因为原始密码值不可用于检查:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Lihaozhe!!@@1122';
FLUSH PRIVILEGES;
update mysql.user set host = '%',plugin='mysql_native_password' where user='root';
FLUSH PRIVILEGES;
exit;
sudo systemctl restart mysqld
防火墙开放端口
–zone #作用域
–add-port=3306/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent
防火墙重载
firewall-cmd --reload
# 使用新密码连接
mysql -h 你自己的IP地址 -uroot -p
创建finebi外接数据库finedb
字符集应当为 utf8 ,排序规则为 utf8_bin。
create database finebi character set utf8 collate utf8_bin;
安装jdk和tomcat
下载jdk
jdk 官网下载页面:https://www.oracle.com/java/technologies/downloads/

下载jdk
tomcat 官网下载页面:https://tomcat.apache.org/download-90.cgi

解压jdk和tomcat并修改目录名称
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /usr/local/
tar -zxvf apache-tomcat-9.0.83.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_391/ /usr/local/jdk-8
mv /usr/local/apache-tomcat-9.0.83 /usr/local/tomcat-9
设置tomcat.pid文件生成
其中tomcat.pid文件本身不存在,设置之后,启动Tomcat会自动生成
vim /usr/local/tomcat-9/bin/catalina.sh
定位文件第152行找到 PRGDIR=
dirname "$PRG"并在该行下追加以下内容
CATALINA_PID="/usr/local/tomcat-9/bin/tomcat.pid"

配置环境变量
vim /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/local/jdk-8export CATALINA_BASE=/usr/local/tomcat-9
export CATALINA_HOME=/usr/local/tomcat-9export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin
source /etc/profile.d/my_env.sh
编写开机启动服务
cd /usr/lib/systemd/system
vim tomcat-9.service
[Unit]
Description=finereport-server
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk-8"
PIDFile=/usr/local/tomcat-9/bin/tomcat.pid
ExecStart=/usr/local/tomcat-9/bin/startup.sh
ExecReload=/usr/local/tomcat-9/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start tomcat-9.service
systemctl enable tomcat-9.service
设置防火墙端口放行
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
重启系统
reboot
浏览器访问测试
http://服务器IP地址:8080

安装finebi
官网下载
https://www.finebi.com/product/download

上传安装包
tomcat-linux-x64.tar.gz
解压安装包到指定目录
/usr/local
tar -zxvf tomcat-linux-x64.tar.gz -C /usr/local/
解压后的目录名为 tomcat-linux-64
删除 MySQL5 数据库驱动
### 上传 MySQL 数据库驱动```bash
cd /usr/local/tomcat-linux-x64/webapps/webroot/WEB-INF/lib/
ls mysql*

删除MySQL5的驱动后上传MySQL8的驱动
mysql-connector-j-8.0.33.jar mysql驱动
protobuf-java-3.5.1.jar mysql驱动依赖
rm -f mysql-connector-java-5.1.49-bin.jar /usr/local/tomcat-9/webapps/finebi
复制 finebi web 工程到 tomcat 服务器发布
cp -r /usr/local/finebi/webapps/webroot /usr/local/tomcat-9/webapps/finebi
创建 finebi 外接数据库
本案例使用
MySQL8作为finebi外接数据库
- 关闭 BI 工程
- 删除工程webapps\webroot\WEB-INF\lib目录下的
mysql-connector-java-5.1.49-bin.jar- 下载对应版本的
MySQL8驱动,并上传至工程webapps\webroot\WEB-INF\lib目录下。
- 上传mysql8驱动
mysql-connector-j-8.0.33.jar- 上传mysql8驱动依赖
protobuf-java-3.5.1.jar
- 重启 BI 工程。
字符集:
- 平台外接 MySQL 数据库时,需要设置字符集排序规则(大小写敏感)。
- 推荐使用 utf8 – UTF-8 Unicode 编码。
- 不支持 utf8mb4 编码
排序规则:
MySQL 中存在多种格式的 utf8 编码的排序规则,其中最常见的两种如下表所示:
- utf8_bin(推荐)
定义:将字符串中的每一个字符用二进制数据存储,区分大小写
示例:Alex 和 alex 被认为是两个不同的值- utf8_general_ci
定义:ci 为 case insensitive 的缩写,即大小写不敏感,为 utf8 默认编码
示例:Alex 和 alex 被认为是相同的值
登录
mysql创建 finebi 数据库
create database finebi character set utf8 collate utf8_bin;
重启 tomcat
systemctl restart tomcat-9
浏览器访问测试
http://服务器IP地址:8080/finebi/decision

设置账号密码

账号密码设置成功

根据使用场景选择数据库
本案例使用外接数据库

外接数据库配置

修改外接数据库参数
- 数据库类型
mysql- 驱动
MySQL5com.mysql.jdbc.DriverMySQL8com.mysql.cj.jdbc.Driver
- 主机
MySQL服务器IP地址- 端口号
3306- 数据库名称
finebi- 用户名
root- 密码 ·MySQL数据库密码·

修改外接数据库参数后点击启用新数据库

登录 finebi


相关文章:
openEuler Linux 部署 FineBi
openEuler Linux 部署 FineBi 部署环境 环境版本openEuler Linux22.03MySQL8.0.35JDK1.8FineBi6.0 环境准备 升级系统内核和软件 yum -y updatereboot安装常用工具软件 yum -y install vim tar net-tools 安装MySQL8 将 MySQL Yum 存储库添加到系统的存储库列表中 sudo…...
QThreadStorage使用介绍
作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 什么是线程数据存储Qt中的线程数据存储`QThreadStorage` 的用法:代码示例什么是线程数据存储 线程数据存储是指为每个线程在程序中分配和管理数据的过程。它主要用于并发编程…...
AI和人工智能与机器学习全景报告
今天分享的是AI系列深度研究报告:《AI和人工智能与机器学习全景报告》。 (报告出品方:appen) 报告共计:30页 获取 数据获取仍是AI应用构建团队的主要瓶颈。 原因各不相同。例如,特定用例的数据可能不足…...
【计算机网络】(网络层)定长掩码和变长掩码
目录 1、IPV4地址的应用规划 2、例题分析 2.1、定长的子网掩码 2.2、变长的子网掩码 1、IPV4地址的应用规划 定长的子网掩码(FLSM): 使用同一个子网掩码划分子网,每个子网所分配的IP地址数量相同,造成IP地址的浪费…...
008 OpenCV matchTemplate 模板匹配
目录 一、环境 二、模板匹配算法原理 三、代码演示 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、模板匹配算法原理 cv.matchTemplate是OpenCV库中的一个函数,用于在图像中查找与模板匹配的特征。它的主要应用场景…...
PTA 海盗分赃
P 个海盗偷了 D 颗钻石后来到公海分赃,一致同意如下分赃策略: 首先,P 个海盗通过抽签决定 1 - P 的序号。然后由第 1 号海盗提出一个分配方案(方案应给出每个海盗分得的具体数量),如果能够得到包括 1 号在…...
零基础学Linux内核:1、Linux源码组织架构
文章目录 前言一、Linux内核的特征二、Linux操作系统结构1.Linux在系统中的位置2.Linux内核的主要子系统3、Linux系统主要数据结构 三、linux内核源码组织1、下载Linux源码2、Linux版本号3、linux源码架构目录讲解 前言 这里将是我们从零开始学习Linux的第一节,这节…...
STM32中Msp函数的意义
msp(MCU Support Package) 举个例子:串口初始化函数HAL_UART_Init()与串口底层初始化函数HAL_UART_MspInit() HAL_UART_Init()用于初始化串口通讯协议如波特率、有效位等 HAL_UART_MspInit()用于初始化于MCU相关的配置比如时钟、NVIC、GPI…...
PTA NeuDs_数据库题目
二.单选题 1.数据库应用程序的编写是基于数据库三级模式中的。 A.模式 B.外模式 C.内模式 D.逻辑模式 用户应用程序根据外模式进行数据操作,通过外模式一模式映射,定义和建立某个外模式与模式间的对应关系 2.对创建数据库模式一类的数据库对象的授权…...
pulseaudio是如何测试出音频延迟的
通常专业的音频设备生产厂商都有专业的设备来测试精确的音频链路延时。 那么没有专业设备怎么测试出音频延迟呢?如下图,我们可以看到pulseaudio可以测试出硬件音频延迟。 那么,他是怎么测试出硬件延迟的呢?他的理论依据是什么呢?接下来我带大伙一起探索一下。 /*占位…...
【docker】docker的基础命令
基础操作 docker info #查看docker的基本信息docker version #查看docker版本信息一、镜像操作 1、搜索镜像 docker search nginx2、下载镜像 docker pull nginx#从仓库中下载镜像,若没有指定标签,则下载最新的版本,也就是标签为: lat…...
RocketMq 主题(TOPIC)生产级应用
RocketMq是阿里出品(基于MetaQ)的开源中间件,已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现,十万级数据吞吐量,ms级处理速度,分布式架构,功能强大,扩展性强。 官方…...
队列实现栈VS栈实现队列
目录 【1】用队列实现栈 思路分析 易错总结 Queue.c&Queue.h手撕队列 声明栈MyStack 创建&初始化栈myStackCreate 压栈myStackPush 出栈&返回栈顶元素myStackPop 返回栈顶元素myStackTop 判断栈空否myStackEmpty 释放空间myStackFree MyStack总代码…...
C/C++: 统计整数
【问题描述】 输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输入的那个整数。 【输入形式】 从标准输入读取输入。第一行只有一个数字N(1≤N≤10000),代表整数的个数。以后的N行…...
docker容器生成镜像并上传个人账户
登录到 Docker Hub 账户: docker login这将提示你输入你的 Docker Hub 账户名和密码。 为容器创建镜像 docker commit <容器名或容器ID> <你的用户名>/<镜像名:标签>例子 docker commit my_container yourusername/my_image:latest推送镜像到…...
hdlbits系列verilog解答(exams/m2014_q4g)-48
文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本次我们将一次创建多个逻辑门,对两个输入a和b通过组合逻辑实现七种不同的输出: out_and: a and bout_or: a or bout_xor: a xor bout_nand: a nand bout_nor: a nor bout_xnor: a xnor bout_anotb: a and-no…...
在vue或者react或angular中,模板表达式中的箭头函数是无效的吗?为什么无效?
出现此问题的背景: 我在Angular项目中对一个标签属性绑定了一个箭头函数,编译报错。 在vue或者react或angular中,模板表达式中的箭头函数是无效的吗? 在 Vue、React 或 Angular 中,模板表达式中的箭头函数是无效的。…...
C++11『lambda表达式 ‖ 线程库 ‖ 包装器』
✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2022 版本 17.6.5 文章目录 🌇前言🏙️正文1.lambda表达式1.1.仿函数的使用1.2.lambda表达式的语法1.3.lambda表达式的使用…...
MATLAB算法实战应用案例精讲-【数模应用】漫谈机器学习(四)(附实战案例及代码实现)
目录 机器学习学习路线 学习编写抽象类 固定随机数种子 先加载少量数据...
JavaScript 中松散类型的理解
JavaScript 是一种动态类型语言,它的松散类型是其独特的特性之一。本文将深入探讨 JavaScript 中松散类型的概念以及如何在代码中应用。 引言 JavaScript 是一种强大而灵活的语言,它的松散类型使得变量的类型可以在运行时动态改变。这为开发人员带来了…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
