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

 用户t59kdjdcr6 发布于 2023-02-13 12:00

我在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:无法解析第6行中/usr/local/ipm5/wui/manager/123.bih中指定的连接标识符2

当然,OCI8启用(通过检查的phpinfo)和一些环境(PATH,ORACLE_BASE,ORACLE_HOME,ORACLE_SID,TNS_ADMIN,LD_LIBRARY_PATH)变量被设置成/etc/bash.bashrc

有人推荐?? 问题是什么

1 个回答
  • 而不是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()输出"Environment"部分,如果你没有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
    

    2023-02-13 12:04 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有