设为首页 收藏本站
查看: 896|回复: 0

[经验分享] 安装unxiodbc软件,连接oracle数据库

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-1 08:52:24 | 显示全部楼层 |阅读模式
  安装过程和报错处理我是参考及引用网络上的资源,也结合了自己的实际安装环境

一、安装unixodbc工具
1、下载unixodbc压缩包(unixODBC-2.3.4.tar.gz),用ssh工具将其上传linux服务器。(下载地址:http://www.unixodbc.org/

2、输入以下命令,进行安装:
#tar   -zxvf   unixODBC-2.3.4.tar.gz——解压
#cd  unixODBC-2.3.4——进入解压后的安装目录
#./configure --prefix=/usr/local/unixODBC-2.3.4 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc——对unixODBC-2.3.4软件进行配置
#make——对unixODBC-2.3.4进行编译
#make install——安装unixODBC-2.3.4
ps:在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,在运行make install,最后运行make clean删除一些临时文件(没做过最后一步)。


二、安装oracle数据库的odbc驱动
1、下载、上传并安装以下两同版本号的rpm软件包
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm
下载地址: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
#rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm ——安装操作
#rpm -ivh oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm——安装操作
ps:下载32位或63位的rpm包,由linux系统来决定,用uname -a,可查看当前系统的型号

2、将/usr/lib/oracle/11.2/client/lib/* 拷贝到/usr/lib/目录下——将oracle下动态连接共享库拷贝到linux系统默认路径下

3、执行ldconfig——将linux系统新增的oracle动态连接共享库进行加载

4、在/usr/lib/oracle/11.2/NETwork/admin/ 下创建文件tnsnames.ora ,如下:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.162.35.137)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
其中ORCL为一个标识名,配置文件odbc.ini中的ServerName项要与之相对应,SERVICE_NAME后跟要访问的数据库名,HOST为数据库所在主机IP地址,PORT为端口号。
ps:若之前已经有tnsnames.ora文件,注意看下配置细节即可。

5、在/etc/profile中增加:  export TNS_ADMIN=/usr/lib/oracle/11.2/network/admin/——配置新增的环境变量信息

6、执行 . /etc/profile (注意前面的英文句号,点号后面有空格) 将环境变量注册


三、文件配置
主要是修改 /etc/ 下的两个配置文件 odbc.ini 及 odbcinst.ini 。
1、在/etc/odbcinst.ini 中对各数据库的驱动进行配置,一般格式如
[oraclezy]
Description     = odbc for Oracle——描述
Driver              = /usr/lib/libsqora.so.11.1——驱动程序
Setup              = /usr/lib/liboraodbcS.so——设置
FileUsage        = 1
[ODBC]
Trace=1——追踪
Debug=1——调试
Pooling=No
ps:上述配置中的 Driver 及 Setup 后跟的字段,可能由于版本不同,配置会略有不同,要以本机上的库名或驱动名为准,可先用 ls 命令查看一下。

2、在 /etc/odbc.ini 中对应用程序要调用的ODBC接口进行配置,格式如下:
[oracle]
#odbcinst.ini中对应中括号中的名字
driver      = oraclezy
server      = 192.168.1.167 or localhost
port        = 1521
#tns的名字
ServerName  = ORCL
UserID           = root
password      = 123456(以安装oracle数据库时注册的用户为主)


四、测试连接
完成以上操作后,执行iqsl oracle(以在odbc.ini的数据源名为主)  root(用户) 123456(密码) -v
即:isql oracle root 123456 -v
出现此界面,即安装配置成功:
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>


五、odbc连接oracle数据库报错类型
1、ORA-12170:TNS:Connect timeout occurred:连接超时,注意/etc/odbc.ini 配置文件中servername与tnsnames.ora是否一致
ps:我在安装时,就只遇到一个报错:
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/10.2.0.4/client
/libsqora.so.10.1' : file not found
[ISQL]ERROR: Could not SQLConnect
处理方法:
原因是libsqora.so.11.1依赖的包没有
参考链接:http://bbs.csdn.net/topics/390566189
1、使用如下命令查看依赖关系
# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
linux-vdso.so.1 =>  (0x00007fff99b1d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbcb52f1000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbcb506c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbcb4e4f000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbcb4c36000)
libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 (0x00007fbcb22c6000)
libodbcinst.so.1 => not found (0x00007fbcb20b5000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbcb1d23000)
/lib64/ld-linux-x86-64.so.2 (0x000000393aa00000)
libnnz11.so => /usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007fbcb1955000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007fbcb1754000)
libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fbcb154b000)
2、使用如下命令查找libodbcinst.so.1的位置
#find / -name libodbcinst*
/usr/lib64/libodbcinst.so
/usr/lib64/libodbcinst.so.2
/usr/lib64/libodbcinst.so.2.0.0
/usr/lib/libodbcinst.so
/usr/lib/libodbcinst.so.2
/usr/lib/libodbcinst.so.2.0.0
确实没有libodbcinst.so.1
3、解决该问题是实际操作
将/usr/lib64/libodbcinst.so.2、/usr/lib/libodbcinst.so.2分别复制
#cp /usr/lib/libodbcinst.so.2 /usr/lib/libodbcinst.so.1
#cp /usr/lib64/libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
重新运行验证命令即可


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-307944-1-1.html 上篇帖子: Oracle安装图形界面显示 putty+xming 下篇帖子: Oracle 11g 新特性:自动创建分区(Interval Partition) oracle 数据库 软件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表