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

news2025/7/8 2:35:15

一、环境信息

名称
CPU12th 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安装包

[root@bogon Pkg]# tar -xvf unixODBC-2.3.0.tar.gz

2、切换目录

[root@bogon Pkg]# cd unixODBC-2.3.0/

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

3、配置

[root@bogon unixODBC-2.3.0]# ./configure

4、编译

[root@bogon unixODBC-2.3.0]# make

5、编译安装

[root@bogon unixODBC-2.3.0]# make install

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

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

[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配置

[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配置

[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数据源

[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一下此文件。

[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"
[dmdba@czg0 ~]$ source /home/dmdba/.bash_profile

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

[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)

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2336105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宿舍管理系统(servlet+jsp)

宿舍管理系统(servletjsp) 宿舍管理系统是一个用于管理学生宿舍信息的平台,支持超级管理员、教师端和学生端三种用户角色登录。系统功能包括宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录、添加宿舍房间、心理咨询留言板、修改密码和退出系统等模块。宿舍管理员…

驱动-兼容不同设备-container_of

驱动兼容不同类型设备 在 Linux 驱动开发中,container_of 宏常被用来实现一个驱动兼容多种不同设备的架构。这种设计模式在 Linux 内核中非常常见,特别 是在设备驱动模型中。linux内核的主要开发语言是C,但是现在内核的框架使用了非常多的面向…

MySQLQ_数据库约束

目录 什么是数据库约束约束类型NOT NULL 非空约束UNIQUE 唯一约束PRIMARY KEY主键约束FOREIGN KEY外键约束CHECK约束DEFAULT 默认值(缺省)约束 什么是数据库约束 数据库约束就是对数据库添加一些规则,使数据更准确,关联性更强 比如加了唯一值约束&#…

责任链设计模式(单例+多例)

目录 1. 单例责任链 2. 多例责任链 核心区别对比 实际应用场景 单例实现 多例实现 初始化 初始化责任链 执行测试方法 欢迎关注我的博客!26届java选手,一起加油💘💦👨‍🎓😄😂 最近在…

林纳斯·托瓦兹:Linux系统之父 Git创始人

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 林纳斯托瓦兹:Linux之父、Git创始人 一、传奇人物的诞生 1. 早年生活与家…

8. RabbitMQ 消息队列 + 结合配合 Spring Boot 框架实现 “发布确认” 的功能

8. RabbitMQ 消息队列 结合配合 Spring Boot 框架实现 “发布确认” 的功能 文章目录 8. RabbitMQ 消息队列 结合配合 Spring Boot 框架实现 “发布确认” 的功能1. RabbitMQ 消息队列 结合配合 Spring Boot 框架实现 “发布确认” 的功能1.1 回退消息 2.备用交换机3. API说…

维港首秀!沃飞长空AE200亮相香港特别行政区

4月13日-16日,第三届香港国际创科展在香港会议展览中心盛大举办。 作为国内领先、国际一流的eVTOL主机厂,沃飞长空携旗下AE200批产构型登陆国际舞台,以前瞻性的创新技术与商业化应用潜力,吸引了来自全球17个国家及地区的行业领袖…

redis6.2.6-prometheus监控

一、软件及系统信息 redis:redis-6.2.6 redis_exporter:redis_exporter-v1.50.0.linux-amd64.tar.gz # cat /etc/anolis-release Anolis OS release 8.9 granfa; 7.5.3 二、下载地址 https://github.com/oliver006/redis_exporter/releases?page…

如何在idea中快速搭建一个Spring Boot项目?

文章目录 前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热启动(热部署)结语 前言 Spring Boot 凭借其便捷的开发特性,极大提升了开发效率,为 Java 开发工作带来诸多便利。许多大伙伴希望快速…

itext7 html2pdf 将html文本转为pdf

1、将html转为pdf需求分析 经常会看到爬虫有这样的需求,将某一个网站上的数据,获取到了以后,进行分析,然后将需要的数据进行存储,也有将html转为pdf进行存储,作为原始存档,当然这里看具体的需求…

docker compose搭建博客wordpress

一、前言 docker安装等入门知识见我之前的这篇文章 https://blog.csdn.net/m0_73118788/article/details/146986119?fromshareblogdetail&sharetypeblogdetail&sharerId146986119&sharereferPC&sharesourcem0_73118788&sharefromfrom_link 1.1 docker co…

代码随想录算法训练营Day30

力扣452.用最少数量的箭引爆气球【medium】 力扣435.无重叠区间【medium】 力扣763.划分字母区间【medium】 力扣56.合并区间【medium】 一、力扣452.用最少数量的箭引爆气球【medium】 题目链接:力扣452.用最少数量的箭引爆气球 视频链接:代码随想录 题…

无感改造,完美监控:Docker 多阶段构建 Go 应用无侵入观测

作者:牧思 背景 随着云原生的普及,Golang 编程语言变得越来越热门。相比 Java,Golang 凭借其轻量,易学习的特点得到了越来越多工程师的青睐,然而由于 Golang 应用需要被编译成二进制文件再进行运行,Golan…

006.Gitlab CICD流水线触发

文章目录 触发方式介绍触发方式类型 触发方式实践分支名触发MR触发tag触发手动人为触发定时任务触发指定文件变更触发结合分支及文件变更触发正则语法触发 触发方式介绍 触发方式类型 Gitlab CICD流水线的触发方式非常灵活,常见的有如下几类触发方式: …

512天,倔强生长:一位技术创作者的独白

亲爱的读者与同行者: 我是倔强的石头_,今天是我在CSDN成为创作者的第512天。当系统提示我写下这篇纪念日文章时,我恍惚间想起了2023年11月19日的那个夜晚——指尖敲下《开端——》的标题,忐忑又坚定地按下了“发布”键。那时的我…

【目标检测】【YOLO综述】YOLOv1到YOLOv10:最快速、最精准的实时目标检测系统

YOLOv1 to YOLOv10: The fastest and most accurate real-time object detection systems YOLOv1到YOLOv10:最快速、最精准的实时目标检测系统 论文链接 0.论文摘要 摘要——本文是对YOLO系列系统的全面综述。与以往文献调查不同,本综述文…

日常学习开发记录-slider组件

日常学习开发记录-slider组件 从零开始实现一个优雅的Slider滑块组件前言一、基础实现1. 组件结构设计2. 基础样式实现3. 基础交互实现 二、功能增强1. 添加拖动功能2. 支持范围选择3. 添加垂直模式 三、高级特性1. 键盘操作支持2. 禁用状态 五、使用示例六、总结 从零开始实现…

Windows 系统如何使用Redis 服务

前言 在学习过程中,我们长期接触到的是Mysql 关系型数据库,也是够我们平时练习项目用的,但是后面肯定会有大型数据的访问就要借助新的新的工具。 一、什么是Redis Redis(Remote Dictionary Server)是一个基于内存的 键…

【unity游戏开发入门到精通——UGUI】CanvasScaler画布缩放器组件

注意:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发——UGUI】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 一、CanvasScaler画布缩放器组件是什么二、CanvasScaler的三种适配模式1、Cons…

Hugging Face 模型:AI 模型的“拥抱”与开源革命!!!

🌐 Hugging Face 模型:AI 模型的“拥抱”与开源革命 用表情符号、图表和代码,探索开源模型生态的底层逻辑与应用场景! 🌟 名字由来:为什么叫 Hugging Face? “Hugging”:象征 开放…