歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Golang 在 Ubuntu 14.04 上使用 Oracle 數據庫

Golang 在 Ubuntu 14.04 上使用 Oracle 數據庫

日期:2017/2/28 14:31:04   编辑:Linux教程

本文參考了以下地址的文章:

https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com%3amattn%3ago-oci8.md​

Golang通過Thrift框架完美實現跨語言調用 http://www.linuxidc.com/Linux/2013-09/90748.htm

golang裡如何將一個struct指針轉換成slice http://www.linuxidc.com/Linux/2013-04/83106.htm

Ubuntu 安裝Go語言包 http://www.linuxidc.com/Linux/2013-05/85171.htm

《Go語言編程》高清完整版電子書 http://www.linuxidc.com/Linux/2013-05/84709.htm

Go語言並行之美 -- 超越 “Hello World” http://www.linuxidc.com/Linux/2013-05/83697.htm

一、安裝Oracle的OCI套件

1、OCI下載鏈接頁面下載(instantclient-basic,instantclient-sdk)

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

2、解壓縮到同一個目錄下,比如:instantclient_12_1

3、root權限移動文件夾到目錄 /usr/lib 下

2、root權限執行以下命令

##​ 其實直接cp拷貝過去也是一樣的

ln /usr/lib/instantclient_12_1/libclntsh.so.12.1 /usr/lib/libclntsh.so
ln /usr/lib/instantclient_12_1/libocci.so.12.1 /usr/lib/libocci.so
ln /usr/lib/instantclient_12_1/libociei.so /usr/lib/libociei.so

ln /usr/lib/instantclient_12_1/libnnz12.so /usr/lib/libnnz12.so

## 以下兩條是為了運行sqlplus命令

ln /usr/lib/instantclient_12_1/​libsqlplusic.so /usr/lib/libsqlplusic.so​

ln /usr/lib/instantclient_12_1/libsqlplus.so /usr/lib/libsqlplus.so​

##​ 把 OCI路徑加入系統加載動態庫的路徑中,並重新加載一次
​echo /opt/oracle/instantclient >> /etc/ld.so.conf
​ldconfig

3、安裝pkg-config

4、在 /usr/lib/pkgconfig 目錄下創建文件 oci8.pc,內容如下:

prefix=<replace instantclient path>
// 路徑改為/usr/lib/instantclient_12_1
libdir=${prefix}
includedir=${prefix}/sdk/include/

Name: OCI
Description: Oracle database engine
Version: 12.1
// 版本改為實際的版本號
Libs: -L${libdir} -lclntsh
Libs.private:
Cflags: -I${includedir}

5、直接運行步驟6會報libaio不存在的錯誤,安裝libaio庫

sudo apt-get install libaio1

6、安裝go-oci8

go get github.com/mattn/go-oci8​

7、.bashrc 文件中添加系統變量

# OCI安裝目錄​
export ORACLE_HOME=/usr/lib/instantclient_12_1
# ​tnsnames.ora 文件地址​
​export TNS_ADMIN=$ORACLE_HOME/network/admin
# OCI安裝目錄加入動態庫加載路徑​
​export LD_LIBRARY_PATH=$ORACLE_HOME
# oci8.pc文件所在路徑
export PKG_CONFIG_PATH=/usr/lib/pkgconfig

8、 tnsnames.ora 文件的內容

​awsdb=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.126)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = awsdb)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/102787p2.htm

Copyright © Linux教程網 All Rights Reserved