当前位置: 首页 > news >正文

SQLBot 达梦数据库访问配置手册

介绍

先快速了解一下 SQLBot。

SQLBot 是一款由飞致云 DataEase 开源团队出品、基于大语言模型(LLM)和 RAG(检索增强生成)技术的智能问数系统。它的核心价值在于,用户可以通过自然语言的方式直接向数据库“提问”,系统会自动解析问题意图,生成 SQL 语句,执行查询并以图表或文字形式返回结果。

SQLBot 能帮助用户降低数据分析门槛,实现数据的即时洞察。

在国产信创越来越重要的当下,国产数据库的使用越来越广泛。SQLBot 也紧跟步伐,提供各种国产数据库的连接支持。但有些国产数据库,在部署时需要通过另外的驱动安装配置才能正常连接到数据库。

这里对 SQLBot 如何配置连接达梦数据库进行详细的操作说明。

问题说明

通常安装部署好 SQLBot 之后(在线通过 Docker 安装,离线通过 bash install.sh 命令安装。离线安装实际也是使用了 Docker),添加达梦数据库数据源时,会遇到以下报错:

[CODE:-70089]Encryption module failed to load

450b93949d51843786fbcfceb470812c

这是一个 dmPython 使用错误,dmPython 依赖于一个加密动态库(如 libdmcrypto.so)来处理数据传输过程中的加密和解密,SQLBot 的 Docker 容器内部并不包含这个加密模块,因此 dmPython 驱动在加载时就会因找不到关键依赖而失败。

虽然达梦官方提供了解决方案([CODE:-70089]Encryption module failed to load),但流程很繁琐。经过一阵子的踩坑与尝试,这里提供一种更加便捷的方式。

解决方案

默认已在 Linux 服务器上已经安装好了 SQLBot。

1. 安装 Python3 和 pip3

确保宿主机安装了 Python3 和 pip3。

# 对于 CentOS/RHEL 系统
sudo yum install -y python3 python3-pip# 对于 Ubuntu/Debian 系统
sudo apt-get update
sudo apt-get install -y python3 python3-pip

不使用 Python2 版本是因为 dmPython 现有版本已经不再提供兼容 Python 2.7 的安装包,使用 pip 安装 dmPython 会报错如下:`

ERROR: Could not find a version that satisfies the requirement dmPython (from versions: none)
ERROR: No matching distribution found for dmPython

2. 安装 dmPython 驱动

使用 pip3 命令安装达梦官方提供的 Python 驱动

pip3 install dmPython

3. 查询 dmPython 安装位置

安装完成后需要找到 dmPython 驱动文件的确切位置。这是它运行所依赖的动态库:

pip3 show dmPython

在输出的信息中,找到 Location 字段,该路径就是 dmPython 的安装目录。输出信息中会看到例如下地址:

[root@temp sqlbot]# pip3 show dmPython
Error processing line 1 of /usr/local/lib/python3.6/site-packages/dmPython.pth:Traceback (most recent call last):File "/usr/lib64/python3.6/site.py", line 168, in addpackageexec(line)File "<string>", line 1, in <module>File "/usr/local/lib64/python3.6/site-packages/dmdpi.py", line 3, in <module>import pipModuleNotFoundError: No module named 'pip'Remainder of file ignored
Name: dmPython
Version: 2.5.4
Summary: Python interface to Dameng
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: Python Software Foundation License
Location: /usr/local/lib64/python3.6/site-packages
Requires: 

有一个错误信息显示 dmPython 模块的 .pth 文件有问题,但这个不重要,只是一个 .pth 文件的处理错误,不影响 dmPython 模块的正常使用。模块本身已经安装成功。

重点是找到 Location: /usr/local/lib64/python3.6/site-packages,dmPython 的安装目录地址。

4. 复制驱动到 SQLBot 目录

在刚刚找到的 dmPython 的安装目录下,会有一个名为 dpi 的文件夹,这里面包含了达梦驱动所需的所有核心动态库文件。如下:

[root@temp dpi]# ll
总用量 46008
-rw-r--r-- 1 root root  3254862 12月  1 10:56 libcrypto.so
-rw-r--r-- 1 root root 31695568 12月  1 10:56 libdmdpi.a
-rw-r--r-- 1 root root 11423352 12月  1 10:56 libdmdpi.so
-rw-r--r-- 1 root root   732592 12月  1 10:56 libssl.so

我们需要将这些文件复制到 SQLBot 可以访问的位置。

根据 SQLBot 官网的建议,统一将其复制到 SQLBot 的安装目录 /opt/sqlbot/bin 下。

sudo cp -r <your-dmPython-location>/dpi/* /opt/sqlbot/bin/

注意,需要将 替换为上一步中你查到的实际路径。

执行后,libdmcrypto.so 等关键文件就被放置在了 /opt/sqlbot/bin 目录中。

5. 修改 docker-compose.yml 文件

需要告诉 SQLBot 的 Docker 容器:

  1. 在哪里可以找到这些动态库文件。
  2. 将宿主机的驱动文件目录挂载到容器内部。

所以要编辑 /opt/sqlbot 目录下的 docker-compose.yml 文件,在对应的 services.sqlbot 配置下添加 environment 配置,在 volumes 最后一行添加驱动文件挂载

services:sqlbot:image: registry.cn-qingdao.aliyuncs.com/dataease/sqlbot:v1.2.1container_name: sqlbotrestart: alwaysprivileged: truenetworks:- sqlbot-networkports:- ${SQLBOT_WEB_PORT}:8000- ${SQLBOT_MCP_PORT}:8001env_file:- conf/sqlbot.conf# 新增 environmentenvironment:- DM_HOME=/opt/dmdbms- LD_LIBRARY_PATH=/opt/dmdbms/binvolumes:- ./data/sqlbot/excel:/opt/sqlbot/data/excel- ./data/sqlbot/file:/opt/sqlbot/data/file- ./data/sqlbot/images:/opt/sqlbot/images- ./data/sqlbot/logs:/opt/sqlbot/app/logs- ./data/postgresql:/var/lib/postgresql/data# 新增挂载- /opt/sqlbot/bin:/opt/dmdbms/bin
networks:sqlbot-network:
  • environment: 设置名为 LD_LIBRARY_PATHDM_HOME 的环境变量,它是 Linux 系统用于查找动态库的路径,将其指向容器内的 /opt/dmdbms/bin 目录。
  • volumes: 通过卷挂载将宿主机的 /opt/sqlbot/bin 目录映射到容器内的 /opt/dmdbms/bin 目录。这样容器启动后就能在 /opt/dmdbms/bin 目录中找到所有必需的达梦驱动文件了。

6. 重启 SQLBot

所有配置文件修改完成后,保存并退出。执行 SQLBot 的重启命令,让新的配置生效。

sctl restart

验证连接

回到 SQLBot 的 Web 界面,再次尝试添加达梦数据库数据源。添加成功。

image-20251201182414870

总结

通过以上步骤可以成功解决 SQLBot 通过安装部署后无法连接达梦数据库的问题。

核心思路是,宿主机准备完整的 dmPython 驱动依赖,通过修改 docker-compose.yml 文件,配置环境变量让容器内的程序知道去哪里加载它。

相比官方的复杂解决方案,该流程更加便捷清晰,可以更顺利的将 SQLBot 与达梦数据库集成。

http://www.jsqmd.com/news/57359/

相关文章:

  • 西城区离婚律师事务所推荐:婚姻家事法律服务机构盘点
  • 最高法--当事人基于合同解除的法律规定,可选择将合同中已约定“抵销”/抵消(即冲抵)的债务恢复原状
  • 20232310 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • 香港比较靠谱的留学中介
  • 北京陪诊机构排名揭晓 守嘉陪诊以专业实力领跑行业
  • 香港留学机构推荐
  • 香港留学机构十强
  • 香港十大留学机构
  • 香港申请研究生的中介机构
  • 香港申请留学中介推荐
  • 香港申请留学中介哪家好
  • 2025 年 12 月杭州公寓出租权威推荐榜:品质房源与便捷服务,打造都市理想栖居之选
  • NOIP2025(qianliangdaoti)
  • 想找北京做小程序的靠谱公司?这几家专业度拉满值得选:微信小程序、支付宝小程序、抖音小程序、工单小程序、活动小程序全涵盖
  • 覆盖全行业!北京专业小程序开发服务,精准方案直达核心需求:抖音小程序,支付宝小程序,微信小程序全涵盖小程序开发公司推荐
  • 2025年12月成都房产典当公司推荐排行:五家持牌机构综合对比分析
  • Backdrop CMS Host 标头注入漏洞 (CVE-2025-63828) 技术分析
  • 【数字排序】时间复杂度为O(n^2)的遍历;
  • amdgpu相关基础概念
  • 数据结构:单链表(1) - 详解
  • LDPC编解码与未编码信息的误码率比较
  • 2025年12月成都房产典当公司推荐排行榜:五家机构综合对比
  • 成都火锅:本地人反复打卡的10家名店,麻辣烫/四川火锅nbsp;/美食/菌汤火锅/老火锅/牛油火锅成都火锅生日餐厅推荐榜单
  • 2025年12月成都房产典当公司推荐排行榜:五家持牌机构对比分析
  • IDEA开发
  • 2025年12月AI智能体与数字人培训权威推荐榜:苏州企业AI获客、GEO优化与短视频营销实战指南
  • 2025去痘印淡斑产品全维度测评:5款高口碑品牌覆盖不同皮肤需求
  • 新加坡几大出国留学中介机构
  • 新加坡好的出国留学机构
  • 新加坡出国留学中介十大排名