linux 安裝oracle 11客戶端+遠程連接服務器


最近在linux 環境下搭建了.NET core 項目,數據庫訪問的是oracle,需要在linux下訪問oracle的服務器,很簡單 環境:centos 7  oracle 11g

首先我們要下載rpm包 https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

找到對應的版本,因為我們的服務器是11g 所以我就下載了 11的客戶端 選擇RPM格式的,需要下載5個包

 

 

 

前面的三個包,是安裝客戶端的,后面的兩個是通過程序連接oracle所需要的的補充包

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm

 

 

 下載完成后,我這里是使用SecureFX上傳到linux服務器的,隨便找個地方 新建一個OracleClient文件夾把文件傳入

 

接下來就是安裝了,安裝很快的

cd /usr/local/OracleClient   找到你存放下載好文件的目錄

rpm -ivh ./oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

 

rpm -ivh ./oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

rpm -ivh ./oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

rpm -ivh ./oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm

rpm -ivh ./oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm

執行后的結果如下圖

 

 

也可以查看安裝后的目錄如下圖,替換一下 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 也可以看看其他的安裝

rpm -qpl oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

 

接下來我們創建一個 存放監聽腳本的目錄 

cd /usr/lib/oracle/11.2/client64/

mkdir network

cd network

mkdir admin

然后把你的tnsnames.ora放到admin下

 

接下來我們配置一下環境變量輸入 vim ~/.bash_profile

 

 打開后在末尾,添加如下代碼

#enviroment variable of oracle client
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export PATH=$PATH:$ORACLE_HOME/bin

效果如下圖

 

然后保存並退出。接下來使用source ~/.bash_profile 刷新一下配置文件

然后打開sqlplus測試一下是否連接通過,格式就是如下 sqlplus 后面街上你的配置 /斜杠 和@來隔開

[gitlab-runner@coreservice client64]$ sqlplus 用戶名/密碼@tnsnames.ora配置的網絡名

SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 5 09:35:56 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

可以查詢你數據庫的表

select * from table;  這個分號必須寫哈。

接下來啟動你的項目測試一下吧,如果報錯,有可能是 odbc 和jdbc 沒有安裝,或者是你啟動服務的用戶沒有配置環境變量

你只是在root里面配置了,在你啟動項目的用戶下沒有配置,或者你的用戶沒有訪問oracle目錄的權限

 

 

解決方案:  如果還是不可以的話,你可以檢查一下你的tnsnames.ora  tns配置文件。或者網絡,防火牆

一般情況 你的sqlplus 可以訪問的話,按照下面三個步驟,理論上是沒問題的,我自己就是這么處理了一下就可以了

1.找到你的用戶 su 用戶  進入用戶  輸入  vim ~/.bash_profile  把環境變量配置一下

2.安裝 odbc 和 jdbc  

rpm -ivh ./oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm

rpm -ivh ./oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm

3.給你的用戶訪問usr的權限

chown -hR gitlab-runner:gitlab-runner /usr    這里gitlab-runner 是我的用戶,我是通過gitlab-runner啟動dotnet服務的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM