达梦数据库-学习-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)
相关推荐
MAGICIAN...35 分钟前
【Redis】--持久化机制
数据库·redis·缓存
我真的是大笨蛋40 分钟前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
2301_794333912 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
Hello_Embed2 小时前
STM32HAL 快速入门(十九):UART 编程(二)—— 中断方式实现收发及局限分析
笔记·stm32·单片机·嵌入式硬件·学习
天上的光2 小时前
关于学习的一些感悟
学习
打码人的日常分享2 小时前
运维服务方案,运维巡检方案,运维安全保障方案文件
大数据·运维·安全·word·安全架构
步步为营DotNet2 小时前
5-2EFCore性能优化
数据库·性能优化·.net
red_redemption3 小时前
自由学习记录(95)
学习
荣光波比3 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
武文斌773 小时前
单片机:DS18B20测温度、74HC595扩展芯片、8*8LED矩阵
运维·服务器·单片机·嵌入式硬件