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

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

[复制链接]

尚未签到

发表于 2018-9-7 10:10:44 | 显示全部楼层 |阅读模式
  安装unixodbc——以下操作在root用户下操作
  
  安装过程和报错处理我是参考及引用网络上的资源,也结合了自己的实际安装环境
  一、安装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.iyunv.com/thread-565706-1-1.html 上篇帖子: Oracle删除用户和表空间 下篇帖子: 恢复oracle数据库误更新
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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