unixODBC配置数据源连接达梦数据库

问题描述

代码直接使用达梦数据库驱动libdodbc.so连接达梦的时候返回了Need more information错误,检查数据库用户名、密码、地址、端口均无配置错误,并且代码在Win,Linux机器上可以正常连接数据库,但是在Arm机器上运行报错。网上也没找到相关资料处理,尝试使用unixODBC配置数据源方式连接,竟然可以成功连上数据库,没搞懂是什么原因造成的,简单记录一下配置数据源连接达梦。


解决方案

通过数据源连接达梦数据库

  1. 安装unixODBC
    需要安装unixODBC环境,unixODBC官网地址,使用命令odbcinst -j检查机器上是否已经安装。

  2. 配置ODBC驱动
    /usr/local/etc/目录下找到odbcinst.ini文件,如果不存在手动创建,编辑写入

[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so

Driver为达梦odbc文件绝对路径

  1. 配置数据源
    /usr/local/etc/目录下找到odbc.ini文件,如果不存在手动创建,编辑写入
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 数据库地址
UID = 数据库用户名
PWD = 数据库密码
TCP_PORT = 数据库端口

注意:Driver需要填写步骤2中的section名称

  1. 测试ODBC连接
    步骤3中的section即为数据源名称,使用isql命令测试连接isql dm8 -v,连接成功则如下图所示连接成功
    如果连接失败并提示Data source name not found, and no default driver specified,重新配置ODBCINIODBCSYSINI两个环境变量即可。其中,ODBCINI设置为odbc.ini的文件路径全名,ODBCSYSINI为配置文件路径,通过执行odbcinst -j命令可以查看当前配置信息情况,以确认相关配置信息的路径是否正确,临时修改环境变量
export ODBCINI=/usr/local/etc/odbc.ini
export ODBCSYSINI=/usr/local/etc

如果提示Can't open lib 'xxx.so' : file not found,但是实际核实该文件是存在的,可以查看驱动文件的动态链接库是否正确,通过ldd xxx.so查看是否有驱动显示not found

再次使用isql测试,测试成功后即可使用该数据源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值