LINUX配置ODBC环境连接达梦数据库常见错误
执行./configure时报错
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gawk... (cached) gawk
checking for bison... no
checking for byacc... no
checking for style of include used by make... GNU
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/soft/unixODBC-2.3.9':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
可以看出是缺少gcc导致的。
解决办法:安装gcc
[root@localhost unixODBC-2.3.9]# mount -o loop /dev/cdrom /mnt
[root@localhost unixODBC-2.3.9]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cp ns7-adv.repo ns7-adv.repo.bak
[root@localhost yum.repos.d]# vim ns7-adv.repo
[ns7-adv-os]
name=NeoKylin Linux Advanced Server 7 - Os
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# yum install -y gcc
[root@localhost yum.repos.d]#umount /mnt
安装完成后可以正常执行./configure
[ISQL]ERROR: Could not SQLConnect
可以使用isql -v dm8来查看错误信息
情况1
[root@localhost unixODBC-2.3.9]# isql -v dm8
[01000][unixODBC][Driver Manager]Can't open lib '/dm8/bin/libdodbc.so' : file not found
[ISQL]ERROR: Could not SQLConnect
检查发现存在libdodbc.so,并且没有缺少依赖包
[root@localhost log]# locate libdodbc.so
/dm8/bin/libdodbc.so
/dm8/drivers/odbc/libdodbc.so
[root@localhost log]# ldd /dm8/bin/libdodbc.so
linux-vdso.so.1 => (0x00007ffd4e7fa000)
libdmdpi.so => /dm8/bin/libdmdpi.so (0x00007fcd6c912000)
libdmfldr.so => /dm8/bin/libdmfldr.so (0x00007fcd6bcf3000)
libdmelog.so => /dm8/bin/libdmelog.so (0x00007fcd6baed000)
libdmutl.so => /dm8/bin/libdmutl.so (0x00007fcd6b8db000)
libdmclientlex.so => /dm8/bin/libdmclientlex.so (0x00007fcd6b688000)
libdmos.so => /dm8/bin/libdmos.so (0x00007fcd6b45c000)
libdmcvt.so => /dm8/bin/libdmcvt.so (0x00007fcd6ad7c000)
libdmstrt.so => /dm8/bin/libdmstrt.so (0x00007fcd6ab68000)
librt.so.1 => /lib64/librt.so.1 (0x00007fcd6a960000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcd6a744000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcd6a540000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fcd6a239000)
libm.so.6 => /lib64/libm.so.6 (0x00007fcd69f37000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcd69b6a000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fcd69954000)
libdmmem.so => /dm8/bin/libdmmem.so (0x00007fcd69747000)
libdmcalc.so => /dm8/bin/libdmcalc.so (0x00007fcd694d6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcd6d791000)
执行source /home/dmdba/.bash_profile后解决
source /home/dmdba/.bash_profile
情况2
[dmdba@localhost ~]$ isql -v dm8
[S1000][unixODBC]用户名或密码错误
[ISQL]ERROR: Could not SQLConnect
修改用户名或密码后解决