一、环境信息
|------|------------------------------------------------------------------------------------------------------------------------------|
| 名称 | 值 |
| 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)