openEuler Linux 部署 FineBi

openEuler Linux 部署 FineBi

部署环境

环境版本
openEuler Linux22.03
MySQL8.0.35
JDK1.8
FineBi6.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
    

mysql8初始密码

通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 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/

jdk1.8下载

下载jdk

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

tomcat9 下载

解压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"

Linux Tomcat 开机自启动

配置环境变量

vim /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/local/jdk-8

export CATALINA_BASE=/usr/local/tomcat-9
export CATALINA_HOME=/usr/local/tomcat-9

export 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

tomcat

安装finebi

官网下载

https://www.finebi.com/product/download

finebi下载页面

上传安装包

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驱动

删除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 外接数据库

  1. 关闭 BI 工程
  2. 删除工程webapps\webroot\WEB-INF\lib目录下的 mysql-connector-java-5.1.49-bin.jar
  3. 下载对应版本的 MySQL8 驱动,并上传至工程webapps\webroot\WEB-INF\lib目录下。
  • 上传mysql8驱动 mysql-connector-j-8.0.33.jar
  • 上传mysql8驱动依赖 protobuf-java-3.5.1.jar
  1. 重启 BI 工程。

字符集:

  1. 平台外接 MySQL 数据库时,需要设置字符集排序规则(大小写敏感)。
  2. 推荐使用 utf8 – UTF-8 Unicode 编码。
  3. 不支持 utf8mb4 编码

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

  1. utf8_bin(推荐)
    定义:将字符串中的每一个字符用二进制数据存储,区分大小写
    示例:Alex 和 alex 被认为是两个不同的值
  2. 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

设置finebi管理员账户

设置账号密码

设置finebi管理员账户

账号密码设置成功

设置finebi管理员账户

根据使用场景选择数据库

本案例使用外接数据库

finebi配置外接选择数据库

外接数据库配置

finebi外接数据库配置

修改外接数据库参数

  1. 数据库类型 mysql
  2. 驱动
  • MySQL5 com.mysql.jdbc.Driver
  • MySQL8 com.mysql.cj.jdbc.Driver
  1. 主机 MySQL服务器IP地址
  2. 端口号 3306
  3. 数据库名称 finebi
  4. 用户名 root
  5. 密码 ·MySQL数据库密码·

finebi外接数据库配置

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

finebi启用外接数据库

登录 finebi

finebi

finebi

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RocketMq 队列(MessageQueue)

RocketMq是阿里出品(基于MetaQ)的开源中间件,已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现,十万级数据吞吐量,ms级处理速度,分布式架构,功能强大,扩展性强。 官方…

【LeetCode:828. 统计子串中的唯一字符 | 贡献法 乘法原理】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

蓝桥杯第四场双周赛(1~6)

1、水题 2、模拟题,写个函数即可 #define pb push_back #define x first #define y second #define int long long #define endl \n const LL maxn 4e057; const LL N 5e0510; const LL mod 1e097; const int inf 0x3f3f; const LL llinf 5e18;typedef pair…

十大排序之冒泡排序与快速排序(详解)

文章目录 🐒个人主页🏅算法思维框架📖前言: 🎀冒泡排序 时间复杂度O(n^2)🎇1. 算法步骤思想🎇2.动画实现🎇 3.代码实现🎇4.代码优化(添加标志量) …

NX二次开发UF_CURVE_ask_curve_fit_data 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_curve_fit_data Defined in: uf_curve.h int UF_CURVE_ask_curve_fit_data(tag_t curve_feature, UF_CURVE_curve_fit_data * curve_fit_data ) overview 概述 Ask c…

【Spring集成MyBatis】MyBatis注解开发

文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注…

【Kotlin】引入与基础语法

文章目录 Kotlin的特性Kotlin优势Kotlin的安卓项目变量变量保存了指向对象的引用优先使用val来避免副作用 后端变量Backing Fields延迟初始化 Kotlin的特性 它更加易表现:这是它最重要的优点之一。你可以编写少得多的代码。Kotlin是一种兼容Java的语言Kotlin比Java…

针对哈希冲突的解决方法

了解哈希表和哈希冲突是什么 哈希表:是一种实现关联数组抽象数据类型的数据结构,这种结构可以将关键码映射到给定值。简单来说哈希表(key-value)之间存在一个映射关系,是键值对的关系,一个键对应一个值。 …

顶级安卓数据恢复工具—— 15 个 Android 数据恢复程序榜单

探索并比较顶级 Android 数据恢复软件,并选择最好的 Android 恢复应用程序来恢复您的宝贵数据: 特别是您的智能手机或 Android 设备可以完成许多繁重的工作,其中最有用的是存储数据。Android 设备可以伪装成照片、视频、电子邮件甚至敏感商业…

MVCC多版本并发控制相关面试题整理

多版本并发控制是一种用于支持并发事务的数据库管理系统技术,它允许多个事务同时访问数据库,而不会相互干扰或导致数据不一致。MVCC通过在数据库中维护不同版本的数据来实现这一目标,从而允许每个事务看到一致的数据库快照。 并发导致的问题…

vue实现海康H5视频插件播放视频的实例,实现取流失败了之后重新获取新的流播放视频

vue实现海康H5视频插件播放视频的实例,实现取流失败了之后重新获取新的流播放视频 h5player是一个基于HTML5的流式网络视频播放器,无需安装浏览器插件即可通过websocket协议向媒体服务取流播放多种格式的音视频流。 首先去海康开发平台,把插…

iar如何全擦芯片内存

Project ->Download -> Erase memory

什么是零拷贝 、零拷贝优化方案 - 真正的零拷贝,哪些地方会用到零拷贝技术

文章目录 什么是零拷贝3、零拷贝优化方案 - 真正的零拷贝哪些地方会用到零拷贝技术 现在来谈谈零拷贝,以及在开发中哪些地方使用到零拷贝。 开干… 什么是零拷贝 零拷贝指的是,从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底…

基于springboot实现应急救援物资管理系统项目【项目源码】

基于springboot实现应急救援物资管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&a…

python游戏开发pygame初步

文章目录 安装和示例移动物体优化 安装和示例 顾名思义,PyGame就是用来做游戏的Python库,提供了许多游戏开发功能,如图像处理、音频播放、事件处理、碰撞检测等等。从这个角度来说,pygame不仅是一个游戏库,同时也是一…

【教3妹学编程-算法题】统计子串中的唯一字符

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开发。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&#x…

【brpc学习实践八】bvar及其应用

什么是bvar bvar是多线程环境下的计数器类库,支持单维度bvar和多维度mbvar,方便记录和查看用户程序中的各类数值,它利用了thread local存储减少了cache bouncing,相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销&a…

4、浏览器插件配置使用

文章目录 一、Hackbar1. Load和Execute功能的使用2. Split功能的使用3. Post功能的使用4. 编码功能的使用 二、FoxyProxy1、设置Burpsuite的代理服务端口2、FoxyProxy插件的简单使用 三、User-Agent Switcher 一、Hackbar 火狐浏览器中按下F12键启用hackbar。 1. Load和Execut…

springboot宠物店管理系统-计算机毕设 附源码 32041

SpringBoot宠物店管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,宠物行业当然也不例外。宠物店管理系统是以实际运用为开发背景,运用软件工程原理…

leetcode算法之链表

目录 1.两数相加2.两两交换链表中的节点3.重排链表4.合并K个升序链表5.K个一组翻转链表 1.两数相加 两数相加 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(…