unixODBC安装以及配置
、发现问题:连接报错
本身在安装完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 found
libdmfldr.so => not found
libdmelog.so => not found
libdmutl.so => not found
libdmclientlex.so => not found
libdmos.so => not found
libdmcvt.so => not found
libdmstrt.so => not found
librt.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重新加载配置,然后重新发起连接,至此问题解决。
文章
阅读量
获赞