`

Linux安装Golang Oracle数据库驱动程序

阅读更多
Golang连接Oracle 需要安装Oracle Full Client或Instant Client

Oracle的Instant Client套件下载地址

  1. #选择Instant Client for Linux x86-64下载包如下:
  2. instantclient-basic-linux.x64-21.1.0.0.0.zip
  3. instantclient-sqlplus-linux.x64-21.1.0.0.0.zip
  4. instantclient-sdk-linux.x64-21.1.0.0.0.zip
  5. #都解压到 instantclient_21_1 这个目录,直接解压会解压到instantclient_21_1目录
  6. unzip instantclient-basic-linux.x64-21.1.0.0.0.zip
  7. unzip instantclient-sdk-linux.x64-21.1.0.0.0.zip
  8. unzip instantclient-sqlplus-linux.x64-21.1.0.0.0.zip
  9. #打印instantclient_21_1目录的路径
  10. pwd
  11. /home/oracle/instantclient_21_1
安装pkg-config

CentOS自带了pkg-config,这里不在安装

  1. #打印pkg-config版本
  2. pkg-config --version
创建配置文件oci8.pc

vim /home/oracle/oci8.pc oci8.pc文件内容如下:

  1. prefix=/home/oracle/instantclient_21_1
  2. libdir=${prefix}
  3. includedir=${prefix}/sdk/include/
  4. glib_genmarshal=glib-genmarshal
  5. gobject_query=gobject-query
  6. glib_mkenums=glib-mkenums
  7. Name: oci8
  8. Description: oci8 library
  9. Libs:-L${libdir}-lclntsh
  10. Cflags:-I${includedir}
  11. Version:21.1
配置环境变量

vim /etc/profile

在最后添加如下环境变量

  1. # Oracle的OCI套件
  2. export LD_LIBRARY_PATH=/home/oracle/instantclient_21_1
  3. # oci8.pc文件所在路径
  4. export PKG_CONFIG_PATH=/home/oracle
  5. 使配置生效
  6. source /etc/profile
运行Golang连接Oracle报错一:
  1. # github.com/mattn/go-oci8
  2. In file included from../github.com/mattn/go-oci8/c_helpers.go:3:0:
  3. ./oci8.go.h:1:17: fatal error: oci.h:No such file or directory
  4. #include<oci.h>
  5. ^
  6. compilation terminated.

是因为配置的环境变量,oci8.pc文件所在路径不对,找不到oci8.pc文件导致的 注意这个路径配置对 export PKGCONFIGPATH=/home/oracle

运行Golang连接Oracle报错二:
  1. dyld:Librarynot loaded:@rpath/libclntsh.dylib.19.1
  2. Referencedfrom:/var/folders/_f/n3km_s7j6_9f8qzpkf9w395h0000gn/T/go-build114883360/b001/exe/oracleoci8
  3. Reason: image not found

添加软链接,解决报错

  1. ln -s /home/oracle/instantclient_21_1/libclntsh.so.21.1/usr/lib/libclntsh.so
  2. ln -s /home/oracle/instantclient_21_1/libocci.so.21.1/usr/lib/libocci.so
  3. ln -s /home/oracle/instantclient_21_1/libociei.so /usr/lib/libociei.so
  4. ln -s /home/oracle/instantclient_21_1/libnnz21.so /usr/lib/libnnz12.so

<audio controls="controls" style="display: none;"></audio>

分享到:
评论

相关推荐

    用于Go编程语言的Oracle数据库驱动程序。-Golang开发

    Golang Oracle数据库驱动程序TL; DR; 只需使用它import(“ database / sql” _“ gopkg.in/rana/ora.v4”)func main(){ora-import“ gopkg.in/rana/ora.v4”包ora实现了Oracle数据库驱动程序。 Golang Oracle...

    YandexClickHouse的GolangSQL数据库驱动程序_Go_Makefile_下载

    点击屋\nYandex ClickHouse的另一个 Golang SQL 数据库驱动程序\n主要特征\n使用官方接口\n与数据库sql的兼容性\n与dbr、chproxy、clickhouse-bulk 的兼容性\n对于本机界面,请查看clickhouse-go\n数字网络\...

    使用数据库/ SQL进行Go的Oracle驱动程序-Golang开发

    go-oci8描述符合Go数据库/ sql界面的Golang Oracle数据库驱动程序安装安装Oracle完整客户端或Instant Client:https://www.oracle.com/technetwork/database/data go-oci8描述Golang符合以下条件的Oracle数据库驱动...

    用于Yandex ClickHouse的Golang SQL数据库驱动程序-Golang开发

    用于Yandex ClickHouse ClickHouse的Golang SQL数据库驱动程序用于Yandex ClickHouse ClickHouse的Golang SQL数据库驱动程序关键功能使用本机ClickHouse tcp客户端-服务器协议与数据库/ sql的兼容性Round Robin负载...

    golang-odbc 驱动

    在 Go 中使用 golang-odbc 驱动,首先需要确保你的系统已经安装了 ODBC 驱动程序和数据源。数据源是 ODBC 的一个重要概念,它是数据库连接的配置信息,包括数据库的类型、服务器地址、用户名、密码等。你可以通过...

    使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计

    使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库...

    go-clickhouse:用于Yandex ClickHouse的Golang SQL数据库驱动程序

    另一个Golang SQL数据库驱动程序 主要特点 使用官方的http界面 与兼容性 DSN schema://user:password@host[:port]/database?param1=value1&...&paramN=valueN 参数 超时-是拨号等待连接完成的最长时间 idle_time...

    Go MySQL Driver 是 Go(golang)数据库/sql 包的 MySQL 驱动程序

    Go MySQL Driver 是 Go(golang)数据库/sql 包的 MySQL 驱动程序

    Go-Go(golang)的FirebirdRDBMSSQL驱动程序

    在Go语言中,若要与Firebird数据库进行通信,就需要一个专门的驱动程序,这正是"Go-Go(golang)的Firebird RDBMS SQL驱动程序"所扮演的角色。 这个驱动程序,通常称为`firebirdsql`,是为Go语言开发的,它实现了`...

    golang+离线安装golang1.18.9+rpm离线安装golang1.18

    在Linux环境中,Go语言(Golang)是一种广泛使用的开源编程语言,特别适合构建高效、可靠的网络服务和系统工具。在没有互联网连接或者网络环境受限的情况下,离线安装Go语言是必要的。本文将详细介绍如何在Linux系统...

    Golang的odbc驱动

    在Golang中,ODBC(Open Database Connectivity)驱动允许开发者通过标准接口与各种数据库进行通信,使得程序可以访问多种数据库系统而无需关心底层数据库的具体实现。ODBC是跨平台的,它提供了一个统一的方式来访问...

    Linux系统golang环境配置shell脚本

    运行shell脚本,能够自动配置Linux系统golang环境,免去繁琐的手动配置步骤,也能在手机Termux上面安装golang环境。

    Centos7安装golang

    ### Centos7安装golang知识点详解 #### 一、引言 随着云计算和微服务架构的兴起,Go语言因其简洁高效、并发模型强大等特点而受到越来越多开发者的青睐。本文将详细介绍如何在Centos7上安装并配置Go语言环境,帮助...

    Go-Prana是一个Golang数据库管理和代码生成

    Go-Prana是一款基于Golang语言的数据库管理与代码生成工具,它的主要功能集中在简化数据库操作和提升开发效率上。Prana提供了丰富的命令行接口,让开发者能够方便地执行SQL迁移、运行嵌入式SQL脚本以及根据数据库...

    使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计.zip

    使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计.zip 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与...

    Go-BundleDB是Golang的嵌入式数据库其集合随着它们的增长而自动分裂

    Go-BundleDB是一种基于Golang实现的嵌入式数据库系统,专为处理不断增长的数据集而设计。它的核心特性在于其自动分裂功能,这使得数据库能够有效地管理内存和磁盘资源,保持高效运行,尤其适合那些对数据存储有动态...

    instantclient-sdk-linux.x64-19.6.0.0.0dbru.zip

    Oracle Instant Client是Oracle公司提供的一款轻量级的客户端软件,用于在不安装完整Oracle数据库的情况下,支持应用程序连接到Oracle数据库。这个压缩包"instantclient-sdk-linux.x64-19.6.0.0.0dbru.zip"包含了在...

    linux-updategolang一个脚本轻松获取并安装新Golang版本

    在Linux环境中,更新和管理Golang版本可能会变得繁琐,尤其是当你需要频繁地在不同项目间切换,每个项目可能依赖特定的Go版本。然而,通过使用`update-golang`脚本,我们可以简化这一过程,实现快速、高效地获取并...

Global site tag (gtag.js) - Google Analytics