繁体   English   中英

PHP oci_connect() TNS:无法解析连接标识符 (ORA-12154)

[英]PHP oci_connect() TNS:could not resolve the connect identifier (ORA-12154)

我正在 Ubuntu 服务器上测试一些 PHP 代码,并且通过“tnsping”命令检查了 oracle 数据库连接

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))
OK (10 msec)

但是,PHP 中的 oci_connect 函数显示如下警告

警告:oci_connect():ORA-12154:TNS:无法解析 /usr/local/ipm5/wui/manager/123.bih 第 6 行中指定的连接标识符 2

当然,OCI8 已启用(通过 phpinfo 检查)并且一些环境( PATHORACLE_BASEORACLE_HOMEORACLE_SIDTNS_ADMINLD_LIBRARY_PATH )变量被设置到/etc/bash.bashrc

有人推荐吗?? 问题是什么。

而不是 ORCL,您可能希望将整个字符串放在 oci_connect 中

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))

PHP代码:

oci_connect($username, $password, '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))');

检查 phpinfo() 输出“环境”部分,如果你没有 ORACLE_HOME、TNS_ADMIN,你需要将它们提供给你的 PHP 运行环境,对于用 php_module 编译的 apache

export ORACLE_HOME=/path/to/oracle_home
export TNS_ADMIN=/path/to/tns_admin
apachectl start

对于 php-cgi 或 php-fpm

export ORACLE_HOME=/path/to/oracle_home
export TNS_ADMIN=/path/to/tns_admin
/script/to/start/fpm

当使用无法访问的远程数据库或需要访问 VPN 连接时,也会发生这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM