一、ODBC介绍

ODBC,即开放数据库连接Open Database Connectivity,是为解决 异构数据库间的数据共享而产生的一种数据库访问接口标准。ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数据,免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件,甚至访问如Excel 表和ASCI I数据文件这类非数据库对象。

二、unixODBC安装以及配置

unixODBC安装
tar -xzvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
./configure --enable-gui=no
make && make install

直接编译安装,正常安装完毕后,查看ODBC版本以及配置信息如下:

查看ODBC版本:odbc_config --version

查看ODBC配置信息: odbcinst -j

正常安装完成后,/usr/local/etc/odbcinst.ini 和 /usr/local/etc/odbc.ini 两个文件都是空的,需要我们手动写配置,具体配置如下:

odbcinst.ini中,DRIVER行配置为ODBC的动态链接库文件具体路径,这里注意千万不要配置错误

DERVER:动态链接库路径(如不确定,可以find搜索看下该文件具体路径,然后指定)

odbc.ini,即为当前需要登录的DM数据库具体地址以及账号密码端口号。

[dm8]:这里是执行isql命令后跟的参数名,可以任意指定,类似登录时的别名,注意命名冲突
SERVER:ip地址 
UID:用户名
PWD:用户密码
TCP_PORT:数据库实例对应的端口号

三、发现问题:连接报错

本身在安装完ODBC后,当前连接数据库是正常的,但是这本身属于测试环境,重启虚拟机再登录执行命令连接数据库,发现报错[ISQL]ERROR: Could not SQLConnect

首先确认我们数据库是可以正常登录的,即发起ODBC连接异常,首先加-v参数查看具体报错原因

报错提示动态链接库文件不存在:[01000][unixODBC][Driver Manager]Can't open lib '/dm8/bin/libdodbc.so' : file not found

根据该报错,我们先确认文件是否存在,发现实际上是有该文件的

文件存在的话,系统无法识别到,我们可以ldd命令看下这个文件的依赖是否出现问题:

ldd /dm8/bin/libdodbc.so

[root@localhost ~]# ldd /dm8/bin/libdodbc.so linux-vdso.so.1 =>  (0x00007ffda23df000)libdmdpi.so => not foundlibdmfldr.so => not foundlibdmelog.so => not foundlibdmutl.so => not foundlibdmclientlex.so => not foundlibdmos.so => not foundlibdmcvt.so => not foundlibdmstrt.so => not foundlibrt.so.1 => /lib64/librt.so.1 (0x00007f77dcd39000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f77dcb1d000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f77dc918000)libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f77dc60f000)libm.so.6 => /lib64/libm.so.6 (0x00007f77dc30d000)libc.so.6 => /lib64/libc.so.6 (0x00007f77dbf4b000)libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f77dbd35000)/lib64/ld-linux-x86-64.so.2 (0x00007f77dd184000)
[root@localhost ~]#

从上面报错可以看出,这个动态链接库的依赖,libdm*总计8个其他动态链接库not found,而这些动态链接库,从命名上就可以看出是DM*达梦数据库的动态链接库文件,然后我们再确认这些文件是否存在:

结果发现报错的文件,在达梦安装目录下的bin目录下均存在;

文件存在而无法识别到,这里就想到了安装数据库时,一般都需要指定数据目录安装目录等,而系统在启动某个应用时,都会把这些指定的目录在某些配置文件里设置成变量,这里又属于重启虚拟机后才无法连接,因此基本上就可以判断出,大概属于设置的变量失效导致该问题 :

切换成数据库用户dmdba,vim $HOME/.bashrc 没有任何环境变量设置,即重启虚拟机,安装数据库时设置的那些变量就不生效了:

重新写入.bashrc永久设置环境变量

export PATH
export DISPLAY=:0 (这个是dmdba调用窗口安装数据库的配置,和上述问题无关)
export DM_HOME=/dm8
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export PATH=$PATH:/$HOME/bin:$/HOME/.local/bin:$DM_HOME/bin

执行source .bashrc重新加载配置,然后重新发起连接,至此问题解决。

了解更多达梦相关技术,也可访问学习达梦官网文档

DM 数据库快速上手指南 | 达梦技术文档

达梦数据库ODBC连接异常问题相关推荐

  1. 达梦数据库报“网络通信异常”分析解决

    前言: 达梦数据库在通过程序插入具有BLOB字段的记录时(非通过SQL直接插入),报"通信异常",通过更换达梦库驱动包解决. 问题: 在一个项目现场,在进行数据导入时,总时报&qu ...

  2. java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc

    [实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...

  3. oracle数据库dblink创建语句_「运维实验」——达梦数据库DBlink连接Oracle配置

    经过昨天达梦数据库间DBlink配置(具体操作可回看上一篇文章),今天做延伸实验. 实验环境说明 Oracle数据库1:192.168.80.40 ora11g RHEL 6.5 64位 达梦数据库1 ...

  4. php7 测试数据库_达梦数据库PHP连接测试

    完整实验步骤: 1.apache安装 2.php安装 3.连接达梦数据库 1.源码安装apache apache的源码安装包: httpd-2.4.43.tar.gz 安装apache源码包需要先安装 ...

  5. 达梦数据源配置_达梦数据库的连接配置

    1.建立基本的JDBC连接 JDBC(Java Database Connectivity)是Java应用程序与数据库的接口规范,旨在让各数据库开发商为Java程序员提供标准的数据库应用程序编程接口( ...

  6. 达梦数据库odbc的安装教程

    达梦环境配置ODBC驱动 一.ODBC配置 1 .下载UnixODBC安装包 下载地址: 下载的安装包unixODBC-2.3.0.tar.gz放到选定目录/opt下. 2.检查gcc是否安装 #rp ...

  7. 达梦数据库odbc的安装

    1.UnixODBC安装包 将下载的安装包unixODBC-2.3.4.tar.gz放到选定目录/opt下. 2.检查gcc是否安装 $ rpm -qa | grep gcc 若没有安装,则yum – ...

  8. 达梦数据库JDBC连接池断开自动重连设置

    一.场景 在网络状况不是非常良好,经常会出现暂时性的拥塞或者断开的情况,而且当我们重启数据库时也会发生类似的情况.所以需要配置中间件的连接池来实现连接测试以及自动重连,通过重新配置连接池,成功解决了这 ...

  9. 达梦数据库的连接(四种方式-亲测可用)达梦数据库的几大小助手工具

    1.D M 管理工具连接数据库 2.d i s q l 连接数据库 [dmdba@localhost ~]$ disql disql V8 用户名:SYSDBA(也可以直接回车因为初始没有变化) 密码 ...

  10. 达梦数据库如何连接MySQL_如何创建达梦数据库

    配置环境变量 Openfile 临时修改:ulimit -n 65536 /etc/security/limits.conf dmdba soft nofile 4096 dmdba hard nof ...

最新文章

  1. 好的MongoDB中文文档
  2. 解析法实现一元线性回归、多元线性回归以及数据模型可视化操作
  3. html显示pcd,PCD5043 Datasheet(数据表) 10 Page - NXP Semiconductors
  4. UI设计师素材干货|APP底部导航模板
  5. linux,让网卡随着系统启动自动生效
  6. 域名型通配符ssl证书_西部数码使用指南:申请了主域名SSL证书,是否还需要申请www域名的...
  7. 微服务架构实战篇(五):Spring boot2.x + Guava 并使用RateLimiter实现秒杀限流demo
  8. 基于DSP的主动降噪开发之三(CCS软件学习)
  9. tps 、qps、bps、Bps的含义
  10. win10玩武装突袭3一会就闪退的解决方法
  11. ubuntu 桌面菜单栏和任务栏程序标题栏消失的恢复方法
  12. c++practice
  13. 功能: Form窗口最大化时,控件相对位置变化的问题 (学习日记2016-12-23)
  14. 晶圆在低温探针台中的安装方式——Cyanoacrylate粘合剂
  15. Windows7 MSDN原版ISO镜像
  16. SpringCloud服务注册与发现
  17. Kali+mitmproxy 超级详细的ssl劫持和窥窃动妹子上网动态(劫包,返回想要的内容)
  18. 新手入门保姆级教程,Linux平台和手机端SDK,基于Opencv、MNN、NCNN
  19. Ubuntu显示连上网络却上不了网
  20. 用vite创建 vue3 ts项目

热门文章

  1. PLSQL导入导出表数据、表结构
  2. VSCode 离线安装中文语言包
  3. 面向对象需求分析方法实践
  4. USBCAN上位机软件的使用
  5. ext2文件系统之ext2_lookup函数源代码分析
  6. eclipse导入wsdl文件_Eclipse+Axis使用WSDL文件生成Web Service服务端/客户端
  7. C#解析mobi格式的文档
  8. u盘魔术师装linux,U盘魔术师安装步骤
  9. eNSP教程 —— 将虚拟机连接到eNSP设备之中
  10. POM文件配置Maven仓库地址