Linux配置ODBC链接oracle数据库

本文详细描述了在Unix系统上通过源码安装ODBC2.3.12,配置Oracle驱动并进行连接测试的过程,包括编译、配置文件设置和isql登录测试,最终成功实现了ODBC连接Oracle数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、通过源码安装安装ODBC
1.1上传unixODBC-2.3.12.tar.gz源码包到服务器并进行解压:

tar -zxvf unixODBC-2.3.12.tar.gz

1.2进行编译

[root@localhost unixODBC-2.3.12]# ./configure
[root@localhost unixODBC-2.3.12]# make&&make install

1.3配置ODBC

[root@localhost unixODBC-2.3.12]# odbcinst -j
unixODBC 2.3.12
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
[root@localhost unixODBC-2.3.12]# vi /usr/local/etc/odbcinst.ini
[Oracle in OraDb11g_home1]
Description = ODBC DRIVER FOR ORACLE
Driver = /oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1
Threading = 0

[root@localhost unixODBC-2.3.12]# vi /usr/local/etc/odbc.ini
[ORACLE]
Description = ORACLE ODBC DSN
Driver = Oracle in OraDb11g_home1
SERVER = 192.168.1.240
UID = system
PWD = oracle
Servername = orcl
PORT = 1521

1.4isql登录测试

[oracle@localhost ~]$ isql  -v ORACLE system oracle
[01000][unixODBC][Driver Manager]Can't open lib '/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1' : file not found
[ISQL]ERROR: Could not SQLConnect

[root@localhost unixODBC-2.3.12]# ldd /oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1
	linux-vdso.so.1 =>  (0x00007ffff7ffa000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff7bd7000)
	libm.so.6 => /lib64/libm.so.6 (0x00007ffff78d5000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff76b9000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007ffff749f000)
	libclntsh.so.11.1 => not found
	libodbcinst.so.1 => not found
	libc.so.6 => /lib64/libc.so.6 (0x00007ffff70d1000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
[root@localhost unixODBC-2.3.12]# 
ldd测试发现libsqora.so.11.1缺少依赖包,通过find命令查找依赖包
[root@localhost unixODBC-2.3.12]# find / -name libodbcinst.so.*
/usr/local/lib/libodbcinst.so.2.0.0
/usr/local/lib/libodbcinst.so.2
/home/oracle/unixODBC-2.3.12/odbcinst/.libs/libodbcinst.so.2.0.0
/home/oracle/unixODBC-2.3.12/odbcinst/.libs/libodbcinst.so.2
[root@localhost unixODBC-2.3.12]# cp /usr/local/lib/libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
切换oracle用户ldd测试
[root@localhost unixODBC-2.3.12]# su - oracle 
Last login: Tue Nov 28 10:52:42 CST 2023 on pts/0
[oracle@localhost ~]$ vi .bash_profile 
[oracle@localhost ~]$ ldd /oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1
	linux-vdso.so.1 =>  (0x00007ffff7ffa000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff7bd7000)
	libm.so.6 => /lib64/libm.so.6 (0x00007ffff78d5000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff76b9000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007ffff749f000)
	libclntsh.so.11.1 => /oracle/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1 (0x00007ffff4a35000)
	libodbcinst.so.1 => /lib64/libodbcinst.so.1 (0x00007ffff481a000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ffff444c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
	libnnz11.so => /oracle/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so (0x00007ffff407f000)
	libaio.so.1 => /lib64/libaio.so.1 (0x00007ffff3e7d000)
[oracle@localhost ~]$ isql  -v ORACLE system oracle
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| echo [string]                         |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

至此,ODBC链接oracle数据库配置成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值