ubuntu DM8 ODBC驱动安装教程
·
1. 安装ODBC驱动依赖
apt-get update
apt-get install -y unixodbc unixodbc-dev
2. 安装DM8(所需驱动都在安装包中)
2.1. 下载安装包
下载地址:https://eco.dameng.com/download/
根据平台自行选择需要的系统架构。这里我选择X86架构文件

下载后得到的安装包内容如下:

将 dm8_20250506_x86_rh7_64.iso 解压,会有如下安装包。将此安装包放至ubuntu服务器。

2.2. 安装DM8
2.2.1. 创建用户及用户组
DM8运行需要dmdba这个用户
groupadd dinstall
useradd -g dinstall -m dmdba
passwd dmdba
2.2.2. 执行安装脚本(命令行安装)
./DMInstall.bin -i console
- 选择语言

- 输入DM8授权秘钥(这里我们只需要驱动程序,所以不需要设置秘钥,输入"n"试用版安装即可)

- 设置时区(这里选择:China)

- 选择安装模式(这里选择 1,典型安装,亲测试按官方说法使用Custom自定义安装,仅安装驱动,跑不起来。)

| 选项 | 安装类型 | 说明 |
|---|---|---|
| 1 | Typical | 典型安装(推荐):安装数据库服务器、客户端、工具等大多数组件,适合第一次完整安装。 |
| 2 | Server | 仅安装数据库服务器组件,不包含客户端或图形工具,适合纯服务端使用。 |
| 3 | Client | 仅安装客户端工具,如管理工具和连接组件,适合只访问远程数据库的机器。 |
| 4 | Custom | 自定义安装:你可以手动选择要安装的具体模块,适合高级用户或有特殊部署需求的场景。 |
- 设置安装目录(/opt/dm8)可根据自己需求修改

- 安装完成

3. 配置驱动参数
3.1. 查看配置信息
odbcinst -j

3.2. 修改驱动配置参数
vi /etc/odbcinst.ini
[ODBC Data Sources]
DM ODBC DRIVER = DM ODBC DRIVER
[DM ODBC DRIVER]
Driver = /opt/dm8/bin/libdodbc.so
4. python脚本验证数据库连接
注意:python 环境需要提前自行安装,所需要扩展为 pip install --no-cache-dir pyodbc
Python 脚本:
import pyodbc
try:
# 连接信息
server = "127.0.0.1"
port = "5236"
username = "dm8"
password = "123456" # 如果有其他密码请修改
# 连接字符串
conn_str = (
f"DRIVER={{DM ODBC DRIVER}};"
f"SERVER={server};"
f"PORT={port};"
f"UID={username};"
f"PWD={password}"
)
print("尝试连接到达梦数据库...")
conn = pyodbc.connect(conn_str)
print("连接成功!")
# 执行简单查询测试
cursor = conn.cursor()
cursor.execute("SELECT 1 FROM DUAL")
result = cursor.fetchone()
print(f"查询结果: {result}")
cursor.close()
conn.close()
print("连接已关闭")
except Exception as e:
print(f"连接失败: {str(e)}")
附Docker 版 构建Dockerfile
# 达梦数据库ODBC驱动支持
# 基于 Python 官方镜像,添加对达梦数据库的支持
FROM infiniflow/ragflow:v0.18.0
USER root
WORKDIR /ragflow
# 安装达梦数据库ODBC驱动依赖
RUN apt-get update && \
apt-get install -y unixodbc unixodbc-dev &&\
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 添加组和用户
RUN groupadd dinstall && \
useradd -g dinstall -m dmdba && \
echo "dmdba:123456" | chpasswd
ADD ../docker/etc /etc
ADD ../docker/dm8 /opt/dm8
# 设置环境变量
ENV ODBCINI=/etc/odbc.ini
ENV ODBCSYSINI=/etc
# 安装 Python 依赖
RUN pip install --no-cache-dir pyodbc opensearch-py==2.8.0 -v && \
pip list | grep opensearch
# 创建自定义的 opensearchpy 模块
RUN mkdir -p /usr/local/lib/python3.10/dist-packages/opensearchpy && \
echo "# Import from opensearch_py package\ntry:\n import sys\n import os\n # Try to find the opensearch_py package\n paths = [p for p in sys.path if os.path.exists(os.path.join(p, 'opensearch_py'))]\n if paths:\n sys.path.insert(0, os.path.join(paths[0], 'opensearch_py'))\n from opensearch_py import OpenSearch, NotFoundError, UpdateByQuery, Q, Search, Index, ConnectionTimeout\nexcept ImportError:\n # If still cannot import, try another approach\n from opensearch_py.opensearchpy import OpenSearch, NotFoundError, UpdateByQuery, Q, Search, Index, ConnectionTimeout\n\n# Export the names to make them available when importing this module\n__all__ = ['OpenSearch', 'NotFoundError', 'UpdateByQuery', 'Q', 'Search', 'Index', 'ConnectionTimeout']" > /usr/local/lib/python3.10/dist-packages/opensearchpy/__init__.py && \
touch /usr/local/lib/python3.10/dist-packages/opensearchpy/__pycache__
# 创建软链接目录,确保能找到opensearchpy
RUN mkdir -p /ragflow/opensearchpy && \
echo "from opensearchpy import *" > /ragflow/opensearchpy/__init__.py && \
echo "/ragflow" > /usr/local/lib/python3.10/dist-packages/opensearchpy.pth
# 设置默认数据库类型为达梦
ENV DB_TYPE=dm
# 确保入口脚本有执行权限
RUN chmod +x /ragflow/entrypoint.sh
ENTRYPOINT ["/ragflow/entrypoint.sh"]
评论区留言,获取DM8完整驱动包
更多推荐
所有评论(0)