ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

ruby on rails oracle配置 oracle_enhanced,ruby-oci8安装 ,ORA-12154:TNS

2021-12-02 17:00:41  阅读:192  来源: 互联网

标签:TNS instantclient 12.2 xx linux oracle ruby


README

1 添加相应的gem

gem 'activerecord-oracle_enhanced-adapter', '~> 5.2', '>= 5.2.8' 
gem 'ruby-oci8'
gem 'ruby-plsql', '~> 0.6.0'
activerecord-oracle_enhanced-adapter应与rails版本一致,其中ruby-oci8安装有点麻烦,需要配置,配置之前需要下载一些Oracle安装包

2 Install ruby-oci8
2.1 下载oracle对应的sdk 并创建一个自己存放oracle的文件夹
下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
要下载的包是: instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
instantclient-sdk-linux.x64-12.2.0.1.0.zip
instantclient-basiclite-linux.x64-12.2.0.1.0.zip
例如:我存放的位置是/opt/oracle,将sqlplus和sdk解压后的文件放入basiclite的根目录

cd /opt/oracle
unzip instantclient-basiclite-linux.x64-12.2.0.1.0.zip
unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip
cd instantclient-basiclite-linux.x64-12.2.0.1.0/instantclient_12_2
sudo ln -s libclntsh.so.12.1 libclntsh.so  

2.2创建 Oracle即时客户端 系统变量

  	export LD_LIBRARY_PATH=/opt/oracle/instantclient-basiclite-linux.x64-12.2.0.1.0/instantclient_12_2

2.3安装ruby-oci8

    sudo env LD_LIBRARY_PATH=/opt/oracle/instantclient-basiclite-linux.x64-12.2.0.1.0/instantclient_12_2 /usr/bin/gem install ruby-oci8

3 配置config/datebase.yml

	development:
	  <<: *default
	  adapter: oracle_enhanced
	  encoding: unicode
	  port: 1521
	  database: HELOWIN
	  username: username
	  password: password
	  pool: 5
	  variables:
	    statement_timeout: 5000
有可能项目启动后提示错误
ORA-12154:TNS:could not resolve the connect identifier specified,则另外需要配置tnsnames.ora
客户机为了和服务器连接,必须先和服务器上的监听进程联络。ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息。一般tnsnames.ora 是建立在客户机上的。如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器,那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义
tnsnames.ora存放的路径为/etc/tnsnames.ora ,文件内容架构为:
	LISTENER_HELOWIN =
	  (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
	HELOWIN =
	  (DESCRIPTION =
	    (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
	    (CONNECT_DATA =
	      (SERVER = DEDICATED)
	      (SERVICE_NAME = service_name)
	    )
	  )
  1. 接下来正常启动项目运行即可

标签:TNS,instantclient,12.2,xx,linux,oracle,ruby
来源: https://blog.csdn.net/Sunshine_ZYT/article/details/121680715

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有