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服务的

原文地址:https://www.cnblogs.com/xiaojinFat/p/13437918.html