linux oracle database配置失败_开发小记-golang连接Oracle数据库配置

57194c6dee91df9fda7bb2398652f76e.png

项目需求golang连接Orale数据库,使用mattn/go-oci8包,github地址

https://github.com/mattn/go-oci8

过程

  • Oracle Client和SDK
oracle官网下载https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html[root@yunxuntech Soft]# ls -l oracle-instantclient12.2-* instantclient-*-rwxrwxrwx 1 root root   674743 Mar  1 16:05 instantclient-sdk-linux.x64-12.2.0.1.0.zip-rwxrwxrwx 1 root root 52826628 Mar  1 15:14 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm-rwxrwxrwx 1 root root   606864 Mar  1 14:43 oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm客户端路径ORACLE_HOME=[root@yunxuntech ~]# ls -l /usr/lib/oracle/12.2/client64/total 0drwxr-xr-x 1 root root 4096 Mar  1 18:32 bindrwxr-xr-x 1 root root 4096 Mar  1 18:34 lib
  • mattn/go-oci8

GitHub下载放入$GOPATH/src

[root@yunxuntech ~]# ls -l $GOPATH/src/github.com/mattntotal 0drwxrwxrwx 1 root root 4096 Mar  1 19:04 go-oci8
  • 用户环境变量

用户环境变量需要添加PKG_CONFIG_PATH、ORACLE_HOME、LD_LIBRARY_PATH

export GOROOT=/mnt/d/Soft/goexport GOPATH=/mnt/d/Projects/yunmonexport PKG_CONFIG_PATH=/mnt/d/Projects/yunmonexport ORACLE_HOME=/usr/lib/oracle/12.2/client64export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib

PKG_CONFIG_PATH的路径可以自行指定,需要在该路径下添加一个oci8.pc文件,用于指定Oracle客户端的lib路径和sdk的include路径,go-oci8需要用到sdk的oci文件。

oci8.pc文件的内容

prefix=/usrincludedir=${prefix}/local/instantclient_12_2/sdk/include    //sdk路径下面的include文件夹libdir=${prefix}/lib/oracle/12.2/client64/lib  Name: oci8Description: Oracle instantclientVersion: 12.2Cflags: -I${includedir}Libs: -L${libdir} -lclntsh
0acf05dd49c1616dde098735081c4020.png

测试环境oci等lib是否正常

[root@yunxuntech yunmon]# pkg-config --cflags oci8 --libs-I/usr/local/instantclient_12_2/sdk/include  -L/usr/lib/oracle/12.2/client64/lib -lclntsh

脚本测试

770fefb9ff1ea4cdab82ff5dabfa3582.png
[root@yunxuntech t7]# go run t7.goThe user SYS status is OPENThe user SYSTEM status is OPENThe user OUTLN status is EXPIRED & LOCKEDThe user MGMT_VIEW status is EXPIRED & LOCKEDThe user FLOWS_FILES status is EXPIRED & LOCKED

脚本正常工作,操作数据库正常。

编译后配置好Oracle客户端即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值