记录阿里云服务器(Centos7.9)部署Thingsboard(3.4.2)遇到的一些问题

记录编译Thingsboard遇到的一些问题

部署了一个thingsboard项目到阿里云服务器上,历时十一天,遇到了很多困难,国内关于Thingsboard的资料确实很少,所以想着写一篇博客记录一下,或许能够给以后编译遇到类似问题的人一些方向也好。

环境:阿里云ECS云服务器(2核8G 带宽1M)
操作系统:Centos7.9
源码:Thingsboard-3.4.2

首先最重要的是根据自己thingsboard package.json porm.xml文件中安装好对应版本的jdk,nodejs,yarn,maven,postgresql,安装好git。版本对应上是首要前提,不然可能出现很多莫名其妙的问题,切记不要给自己留坑。

编译过程中server-UI模块报错(yarn build失败)

这个模块是Thingsbaord很大的一个模块,编译时间最长,若是前面有什么问题,大部分是依赖相关的下载问题,网上大部分能找到解决方法。唯独这个yarn build,国内鲜有人提及,我在github讨论区看到有人有一样的报错,有人说是内存问题,有人设置了虚拟内存,结果他解决了,成功编译,但是我设置了之后还是无法成功编译,和github上另一个人一样,不过确实是内存问题,因为这个前端模块需要很大的资源,在我的实验下,与是否设置虚拟内存关系不大,需要将阿里云服务器升级至8G才可同时挂上梯子才可编译成功,4G无法编译成功,一般编译时间直接干到十分钟。若是升级到8G还不能成功,尝试置换掉ui-ngx模块,重新挂梯子(网速快的)进行编译,应该可以成功。

请添加图片描述
请添加图片描述

postgresql远程连接不上

在服务器上安装好postgresql后。使用navicat进行远程连接失败。显示连接失败,此时首先应查看:
1.阿里云安全组是否打开postgresql5432端口,若未打开,在阿里云服务器控制台打开。
2、linux内查看防火墙状态,5432端口是否打开,若关闭,打开。
3、同时配置postgresql的一些配置文件,此处网上相关文章很多,不再赘述。主要是listen_address和IPV4…,此处配置了则问题不大。
若上述都已查看并完成,则打开navicat,首先使用SSH即22端口进行服务器连接,再使用5432端口进行连接数据库,即可连接成功。

里云服务器控制台打开。
2、linux内查看防火墙状态,5432端口是否打开,若关闭,打开。
3、同时配置postgresql的一些配置文件,此处网上相关文章很多,不再赘述。主要是listen_address和IPV4…,此处配置了则问题不大。
若上述都已查看并完成,则打开navicat,首先使用SSH即22端口进行服务器连接,再使用5432端口进行连接数据库,即可连接成功。

postgresql locale相关问题

请添加图片描述请添加图片描述

在windows10上安装postgresql时,一定要注意locale的设置,若你选择了default,则你的locale会根据你操作系统来进行设定,变成windows10的一个中文编码——Chinese (Simplified)_China.936,这个中文编码linux是不兼容的,linux上的中文编码只有zh_CN.utf-8,这个locale会影响postgresql索引相关,如果你选择了Chinese (Simplified)_China.936,在使用navicat迁移数据到linux服务器上的数据库时会失败。此时可以选择pgadmin4进行数据库迁移,可以解决locale不兼容的问题。

编译跳过测试

网上很多文章给出的编译跳过测试命令都一样,但是在后面还是报了一个编译的错误,我使用这个命令跳过测试进行编译成功。

mvn clean install -Dmaven.test.skip=true

请添加图片描述

执行数据库脚本报错

本来因为上面的locale问题,导致数据库无法迁移成功,我想使用数据库初始化脚本重新生成初始化数据,在执行的过程中遇到脚本中sudo和JAVA命令找不到,就tm离谱。(环境变量检查了很久,就是没问题)此处若是报错找不到执行的脚本文件,则进入文件,查看:set ff若不是unix改为unix.
我进入脚本文件,将找不到的sudo和java强行用本机绝对地址写入(查看地址使用which sudo | which java)可以运行成功,虽然还是报错,但是至少脚本可以执行了。虽然不知道具体是什么原因导致的,若是有人遇到类似问题,可以尝试一下,就当提供一个思路。

到此处,编译部署顺利结束。

之后分别运行后端和前端,若顺利启动即可访问http://localhost:4200/login使用thingsbaord了。
由于国内的资料非常少,在遇到报错的过程中,查找的过程真是非常的痛苦,所以记录一下一些自己遇到的问题,也希望能够提供一些思路吧!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于nodejs+vue语言的酒店管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

JavaCV + FFmpeg 播放音视频

JavaCV FFmpeg 播放音视频 1、导入JavaCV库1.1 使用ffmpeg必要库1.2 简单FFmpeg命令 待续~~~~ FFmpeg documentation bytedeco/javacv - GitHub 1、导入JavaCV库 gradle下面这种会导入javacv-platform所有包,非常耗时:https://repo.maven.apache.org/…

安卓14通过“冻结”缓存应用程序腾出CPU,提高性能和内存效率

本月早些时候,我们听说更新到安卓14似乎提高了谷歌Pixel 7和Pixel 6的效率——提高了电池寿命,并在这个过程中减少了热量的产生。现在看来,安卓14的增效功能细节已经公布。 安卓侦探Mishaal Rahman在X(前身为Twitter)…

需要在 MySQL 服务器中监控的重要指标

MySQL是一个开源的关系数据库管理系统,它基于客户端-服务器模型运行,使用SQL作为其通信模式。它具有灵活性和可扩展性、高安全性、易用性以及无缝处理大型数据集的能力,由于其广泛的功能,MySQL 被用作数据库管理系统的一部分。 什…

c++踩坑点,类型转换

std::string转换到PVOID std::string转换到PVOID的方式如下 这样的话成功转换 “const char *” 类型的实参与 “WCHAR *” “const char *” 类型的实参与 “WCHAR *” 类型的形参不兼容 可以看到这种报错,可以直接强转如下: 但是在我们这里不适…

单目3D目标检测论文汇总

基于语义和几何约束的方法 1. Deep3DBox 3D Bounding Box Estimation Using Deep Learning and Geometry [CVPR2017] https://arxiv.org/pdf/1612.00496.pdfhttps://zhuanlan.zhihu.com/p/414275118 核心思想:通过利用2D bounding box与3D bounding box之间的几何约…

python基础语法(2)

基础语法 前言顺序语句条件语句什么是条件语句语法格式(1) if(2) if - else(3) if - elif - else 缩进和代码块循环语句while 循环for 循环关于continue和break 前言 本文基于pycharm编译器,也可以使用Anaconda 里的编译器,将讲解一些python的一些基础语…

LabVIEW中使用Get LV Class Default Value 出现错误1498

LabVIEW中使用Get LV Class Default Value 出现错误1498 在LabVIEW中开发了一个应用程序,其中包含可以在执行时动态配置插件的基类。生成可执行文件后,当应用程序要执行子类时,收到以下错误信息。 Error1498 occurred at Gen LV Class Defa…

ArmSoM-RK3588编解码之mpp解码demo解析:mpi_dec_test

1. 简介 [RK3588从入门到精通] 专栏总目录 mpi_dec_test 是rockchip官方解码 demo 本篇文章进行mpi_dec_test 的代码解析,解码流程解析 2. 环境介绍 硬件环境: ArmSoM-W3 RK3588开发板 软件版本: OS:ArmSoM-W3 Debian11 3.…

element-ui 以CDN 方式引入原生js开发的几个别坑 (+vue)

element-ui 以CDN 方式引入原生js开发的几个坑 最近两个月太忙了 忙的没空写文章 两个月赶出来了几个的项目 一个是雪佛兰裸眼3D的一个商品屏幕展示项目 一个是广汽云渲染的一个云看车项目 一个是奥迪中国充电桩的网页开发项目, 奥迪中国做个饭也是目前正在做的 不…

C#简单晶圆wafermapping显示示范demo

点击,双击可改变颜色 预设5行8列数据: using (fratte.at.WafermapDisplay.Form1 form_show new fratte.at.WafermapDisplay.Form1()){int[,] data_demo new int[,]{{ 0,0,0,1,0 },{ 0,5,1,0,0 },{ 1,7,6,2,3 },{ 1,0,1,2,3 },{ 0,2,0,2,3 }, { 1,5,6,…

微信小程序开发的OA会议之会议,投票,个人中心的页面搭建及模板

目录 一.自定义组件 1.1.创建 1.2.定义 1.3.编写 1.4.使用 二.会议 2.1.数据 2.2.显示 2.3. 样式 三.个人中心 3.1.页面 3.2.样式 四.投票 4.1.引用 4.2.数据 4.3.页面 4.4.样式 好啦今天就到这里了,希望能帮到你哦!!&…

Unity Animation--动画剪辑(创建动画)

创建一个新的动画编辑 创建新的动画剪辑 ,在场景中选择一个GameObject,然后打开“ 动画”窗口(顶部菜单:)“ 窗口” >“ 动画” >“ 动画”。 如果GameObject 中尚未分配任何动画剪辑,“创建”按钮…

Python 框架学习 Django篇 (四) 数据库增删改查(CURD)

在上一章结尾我们了解到如采用前后端开发分离的架构模式开发,后端几乎不负责任何展现界面的工作,只负责对数据进行管理 ,对数据的管理主要体现在: (增加、修改、删除、列出 )具体的接口参考大佬的文档BYSM…

Spring boot 集成 xxl-job

文章目录 xxl-job 简介引入xxl-job依赖配置xxl-job config添加properties文件配置BEAN模式(方法形式)步骤一:执行器项目中,开发Job方法:步骤二:调度中心,新建调度任务 xxl-job 简介 官网:https:…

蓝桥杯 (饮料换购,C++)

思路&#xff1a; 1、先加上初始的饮料数n。 2、再加上n可以兑换的饮料数n/3&#xff0c;求多余的瓶盖n%3。循环直至瓶盖数无法兑换新的一瓶饮料。 #include<iostream> using namespace std; int main() {int n,a0,sum0;cin >> n;sum n;while (n){n n a;//加上上…

车载网关通信能力解析——SV900-5G车载网关推荐

随着车联网的发展,各类车载设备对车载网关的需求日益增长。车载网关作为车与车、车与路、车与云之间连接的关键设备,其通信能力直接影响整个系统的性能。本文将详细解析车载网关的通信能力,并推荐性价比高的SV900-5G车载网关。 链接直达&#xff1a;https://www.key-iot.com/i…

【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号有括号)

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 刷题篇 一、数组实现栈1.1 题目描述1.2 思路…

Filter与Listener(过滤器与监听器)

1.Filter 1.过滤器概述 过滤器——Filter&#xff0c;它是JavaWeb三大组件之一。另外两个是Servlet和Listener 它可以对web应用中的所有资源进行拦截&#xff0c;并且在拦截之后进行一些特殊的操作 在程序中访问服务器资源时&#xff0c;当一个请求到来&#xff0c;服务器首…

接口测试vs功能测试

接口测试和功能测试的区别&#xff1a; 本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什…