unixODBC配置文件


记录kingbase数据库操作过程中记录的问题
sqlconnect连接数据库时,抛错Data source name not found and no default driver specified,程序在此之前切换到kingbase用户再连接数据库。
这里能确认是配置问题,但需要进行手动验证。

查看配置文件

odbcinst -j

查看odbcinst.ini文件



driver配置正常

关于dsn

odbc的dsn可以配置系统dsn和用户dsn,系统dsn是上面odbcinst -j查询到的信息,上图中路径是/etc/odbc.ini,一般用户的dsn在/home/username/.odbc.ini,root用户的dsn的配置文件在/root/.odbc.ini,没有指定ODBCINI这个环境变量时,一般使用用户下的dsn。
此时查看自行配置的odbc.ini文件。
然后通过isql -v [dsn] 进行验证,如图,说明odbc和数据库都正常。
在这里插入图片描述
由此可见,手动执行一切正常,说明环境可用,在鉴于抛错在代码中抛出,所以写一个测试程序去连接,事实证明可以连接,数据库的接口正常,此时分析自己的代码问题,在进行数据库连接前切换用户,切换后的进程环境有问题导致找不到用户的.odbc.ini
在这里插入图片描述
查找资料可以知道,可以配置ODBCSYSINI和ODBCINI来指定odbc加载路径。
在/etc/profile文件中,
export ODBCSYSINI=/etc
export ODBCINI=/etc/odbc.ini
加入上面两句话后,odbc查找dsn在系统dsn配置文件中查找,即/etc/odbc.ini
所以这里要确保/etc/odbc.ini中也有配置好的dsn。

后续,在程序中加入这个环境变量后,Data source name not found and no default driver specified问题解决。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值