Linux安装宝塔,OCI8,连接ORACLE数据库

https://www.cnblogs.com/YALSI/p/16677974.html

基础环境

  • centos7

安装BT宝塔

网址:https://www.bt.cn/download/linux.html

安装ORACLE客户端

下载地址:
	https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

安装包:
	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
	PS: 前两个都必须安装,devel版本就是SDK
	
安装命令:
	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 -qa | grep oracle                                                   // 查看oracle是否安装  
	rpm -qa                                                                 // 查看所有已安装的人rpm包  
	rpm -e oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm           // 卸载已安装的rpm包  
	rpm -ivh --force oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm // 强制安装rpm包  
	
添加环境变量:
	vi /etc/profile

	# 加入以下几行
		export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
		export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH
		export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

	# 命令行输入以下语句使环境配置立即生效
		source /etc/profile

建立软连接:
	64位系统需要创建32位的软链接(这里可能是一个遗留bug,不然后面编译会出问题)

	ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
	ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client 
	# 防止(pdo_oci可能不支持oracle11g,需要做个软链接成作为oracle10版本才能编译过去):

	ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1  
	ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1 

安装php 的 oci8扩展

扩展地址:
	https://pecl.php.net/package/oci8
根据PHP版本安装相应的oci8版本
点击 “Version” 版本,进去详情页:

使用 “pecl” 命令进行安装:
	pecl install oci8-2.2.0
	
	安装过程中添加参数:instantclient,/usr/lib/oracle/11.2/client/lib
	
注意事项:	
	使用安装php扩展包pecl命令是出现ERROR: failed to run `phpize‘
		问题原因:php配置文件 php.ini 中将“popen”函数禁用了
		解决方法:打开 php.ini 文件,将禁用函数“popen”删除。

错误:

 

1)、 ORA-12541: TNS: 没有监听器  
服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:  
$ lsnrctl start  


2)、 ORA-12154: TNS: 无法处理服务名  
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。  

3)、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME  

打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。同时检查sqlnet.ora,例如如果想要采用简便连接方式连接就需要在NAMES.DIRECTORY_PATH参数中添加EZCONNECT。


4)、Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务  
该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常不会生成SID_LIST,导致连接出现问题

5)、ORA-12170: TNS:Connect timeout occurred :超时

是否开启白名单 是:把请求端IP加入; 否:服务端防火墙端口是否已开启

 
posted @ 2022-12-02 17:37  百事可口  阅读(577)  评论(0编辑  收藏  举报