达梦数据库-学习-18-ODBC数据源配置(Linux)

一、环境信息

|------|------------------------------------------------------------------------------------------------------------------------------|
| 名称 | 值 |
| CPU | 12th Gen Intel(R) Core(TM) i7-12700H |
| 操作系统 | CentOS Linux release 7.9.2009 (Core) |
| 内存 | 4G |
| 逻辑核数 | 2 |
| DM版本 | 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284194-20240703-234060-20108 4 Msg Version: 12 5 Gsu level(5) cnt: 0 |

二、介绍

工作中我们经常遇到客户需要使用ODBC连接数据库,那配置ODBC数据源就成了必要的操作流程,今天我们来介绍一下配置ODBC数据源的步骤。

三、安装步骤

1、解压unixODBC安装包

bash 复制代码
[root@bogon Pkg]# tar -xvf unixODBC-2.3.0.tar.gz

2、切换目录

bash 复制代码
[root@bogon Pkg]# cd unixODBC-2.3.0/

[root@bogon unixODBC-2.3.0]# pwd
/opt/Pkg/unixODBC-2.3.0

3、配置

bash 复制代码
[root@bogon unixODBC-2.3.0]# ./configure

4、编译

bash 复制代码
[root@bogon unixODBC-2.3.0]# make

5、编译安装

bash 复制代码
[root@bogon unixODBC-2.3.0]# make install

UnixODBC默认安装路径为/usr/local。动态库路径为/usr/local/lib。

6、查看ODBC版本和配置信息

bash 复制代码
[root@bogon unixODBC-2.3.0]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

7、odbcinst.ini配置

bash 复制代码
[root@bogon unixODBC-2.3.0]# cat /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /opt/Dm8/bin/libdodbc.so

8、odbc.ini配置

bash 复制代码
[root@bogon unixODBC-2.3.0]# cat /usr/local/etc/odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = qwer1234S
TCP_PORT = 5236

9、测试ODBC数据源

bash 复制代码
[root@bogon unixODBC-2.3.0]# su - dmdba
上一次登录:三 4月  9 15:34:23 CST 2025pts/1 上

[dmdba@bogon ~]$ isql DM8 -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

大家记得切换到dmdba用户执行测试命令。如果大家提示动态库找不到之类的错误,可能是环境变量没有配置,可以参考如下内容,配置完记得source一下此文件。

bash 复制代码
[dmdba@czg0 ~]$ cat /home/dmdba/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/Dm8/bin"
export DM_HOME="/opt/Dm8"
bash 复制代码
[dmdba@czg0 ~]$ source /home/dmdba/.bash_profile

如果还连接不上,可能是libdodbc.so连接的动态库找不到导致的问题。

bash 复制代码
[dmdba@bogon ~]$ ldd /opt/Dm8/bin/libdodbc.so
        linux-vdso.so.1 =>  (0x00007ffc298ed000)
        libdmdpi.so => /opt/Dm8/bin/libdmdpi.so (0x00007f8830e5a000)
        libdmfldr.so => /opt/Dm8/bin/libdmfldr.so (0x00007f8830b27000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f883091f000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8830703000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f88304ff000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f88301f7000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f882fef5000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f882fb27000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f882f911000)
        libdmjson.so => /opt/Dm8/bin/libdmjson.so (0x00007f882f6e2000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f8831f68000)
        libdmutl.so => /opt/Dm8/bin/libdmutl.so (0x00007f882f4c7000)
        libdmelog.so => /opt/Dm8/bin/libdmelog.so (0x00007f882f257000)
        libdmos.so => /opt/Dm8/bin/libdmos.so (0x00007f882f021000)
        libdmcvt.so => /opt/Dm8/bin/libdmcvt.so (0x00007f882e8a3000)
        libdmmem.so => /opt/Dm8/bin/libdmmem.so (0x00007f882e690000)
        libdmstrt.so => /opt/Dm8/bin/libdmstrt.so (0x00007f882e482000)
        libdmcalc.so => /opt/Dm8/bin/libdmcalc.so (0x00007f882e1eb000)
        libdmdta.so => /opt/Dm8/bin/libdmdta.so (0x00007f882def4000)
        libdmcfg.so => /opt/Dm8/bin/libdmcfg.so (0x00007f882da8b000)
        libdmbcast.so => /opt/Dm8/bin/libdmbcast.so (0x00007f882d80a000)
        libdmmout.so => /opt/Dm8/bin/libdmmout.so (0x00007f882d530000)
        libdmcyt.so => /opt/Dm8/bin/libdmcyt.so (0x00007f882d30b000)
        libdmcpr.so => /opt/Dm8/bin/libdmcpr.so (0x00007f882d107000)
        libdmcomm.so => /opt/Dm8/bin/libdmcomm.so (0x00007f882ced3000)
        libdmdcrm.so => /opt/Dm8/bin/libdmdcrm.so (0x00007f882ccc6000)
        libdmshm.so => /opt/Dm8/bin/libdmshm.so (0x00007f882cac1000)
        libdmshmm.so => /opt/Dm8/bin/libdmshmm.so (0x00007f882c8bb000)
        libdmclientlex.so => /opt/Dm8/bin/libdmclientlex.so (0x00007f882c686000)
        libdmvtdskm.so => /opt/Dm8/bin/libdmvtdskm.so (0x00007f882c474000)
        libdmdcr.so => /opt/Dm8/bin/libdmdcr.so (0x00007f882c26b000)
        libdmvtdsk.so => /opt/Dm8/bin/libdmvtdsk.so (0x00007f882c063000)
相关推荐
Chunyyyen16 分钟前
【第四十二周】论文阅读
论文阅读·学习
thinkMoreAndDoMore1 小时前
linux内核匹配I2C设备
linux·运维·服务器
小政同学7 小时前
【NFS故障】共享的文件无法执行
linux·运维·服务器
AI木马人7 小时前
3.【Prompt工程实战】如何设计一个可复用的Prompt系统?(避免每次手写提示词)
linux·服务器·人工智能·深度学习·prompt
lwf0061647 小时前
导数学习日记
学习·算法·机器学习
ch3nyuyu7 小时前
Ubuntu(乌班图)基础指令
linux·运维·网络
qeen877 小时前
【编程日记】现阶段总结
学习
minglie17 小时前
gcc编译器汇总
linux
挽安学长8 小时前
保姆级教程,通过GACCode使用Claude Code Desktop!
运维·服务器
sunshine8858 小时前
财务RPA的深水区应用:超越自动化,迈向智能决策支持
数据库