页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 下一个 »

(本文档仅供参考)

问题

         在Linux环境或者docker环境中部署了smartbi,要如何连接mongodb数据库?

解决方案        

         说明:

         若是mongodb数据库本身是没有启用安全校验,这样话,在连接过程如果显示【未指定错误:com/mongodb/MongoClient】,请参考此文档添加对应的 _JDBC_mongo-java-driver-3.4.2.jar 解决:8.0及以上版本连接MongoDB数据库时显示未指定错误:com/mongodb/MongoClient 

          如果mongodb数据库启用了安全校验,即需要用用户名和密码登录才可以连接,则继续参考此文档解决。

         详细步骤:

         1、首先先按照正常方式连接mongodb 数据,具体可参考文档:NoSQL数据源-连接Mongodb数据库

         2、如果正常连接后报错,显示【未指定错误:com/mongodb/MongoClient】,按照 8.0及以上版本连接MongoDB数据库时显示未指定错误:com/mongodb/MongoClient 添加jar包,重启smartbi。

         3、添加_JDBC_mongo-java-driver-3.4.2.jar 后,重启服务器,访问的时候还是报未指定错误,Caused by: java.lang.NoSuchMethodError: org.bson.types.ObjectId.toHexString()Ljava/lang/String;

              此问题是因为jar包类文件冲突导致的,可以依据这个类 org.bson.types.ObjectId 在smartbi中【系统监控】–》【类查找】确定下,这个类文件来源哪个jar包,如下图,正常加载的类文件是ifjdbc.jar,这个jar包是用于连接Informix数据库的驱动包,和mongodb的驱动包冲突了,如果不项目不需要使用Informix数据库,直接将 ifjdbc.jar 删除,然后重启服务器。

         

         4、对于非Windows环境部署smartbi,这是非常重要的一个步骤,在mongodb数据库启用安全校验的情况下,对于安全校验的执行验证是必须要通过mongodb数据库的客户端mongo 程序进行的,但因不同环境版本mongodb数据库的mongo客户端执行程序也是不一样的,就是说mongo客户端程序必须和执行环境系统相符合,对于如何获取到符合smartbi所部署的操作系统的mongo客户端执行程序,具体请看如下操作:

           (1)确定smartbi所部署环境的系统信息,注意如果是部署在docker容器中,需要确定docker容器中的操作系统,不是确定docker所在机器的操作系统。

     

读取不同的Mongo的文件,所以,项目需要在exts-smartbi同层目录级别下手动创建mongo-smartbi ,然后再在这个文件夹同时加载附件的MongoDB文件,这个文件不同Linux上需要加载的不同,若是现场加载附件还是有问题,需要将Linux的版本信息发回,我们协助搜索对应的文件。

 

 

  • 无标签