【问题标题】:how to set TNS_ADMIN path for oracle database connection?如何设置 Oracle 数据库连接的 TNS_ADMIN 路径?
【发布时间】:2019-04-21 08:04:44
【问题描述】:

我正在使用 ubuntu php7 和 apache。当我尝试使用 php 脚本连接数据库时,我收到致命错误:致命错误:ORA-12154:TNS:无法解析指定的连接标识符。

php 脚本:

<?php
//phpinfo(); exit;

$conn = oci_connect('system', 'oracle', 'oracledb/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
} else echo 'succesful';

exit;

phpinfo 显示 ocacle lib 已安装:

以下是有关安装 oci8 文件的详细信息:

unzip /tmp/instantclient-basiclite-linux.x64-12.2.0.1.0.zip -d /usr/local/ 
unzip /tmp/instantclient-sdk-linux.x64-12.2.0.1.0.zip -d /usr/local/ 
unzip /tmp/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip -d /usr/local/

ln -s /usr/local/instantclient_12_2 /usr/local/instantclient 
ln -s /usr/local/instantclient/libclntsh.so.12.1 /usr/local/instantclient/libclntsh.so 
ln -s /usr/local/instantclient/sqlplus /usr/bin/sqlplus
echo 'export LD_LIBRARY_PATH="/usr/local/instantclient"' >> /root/.bashrc

【问题讨论】:

    标签: php oracle11g oracle-call-interface


    【解决方案1】:

    在您拥有“oracledb”的地方使用完整的主机名和域名。或者,如果您的 DNS 服务器无法解析主机名,请尝试使用 IP 地址。如果您在安装了 Oracle XE 的同一台机器上运行 PHP,则使用“localhost”,例如连接字符串将是“localhost/XE”。请注意,如果您在与数据库相同的机器上安装了 PHP,则不需要 Instant Client。

    欲了解更多信息,请参阅http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html

    【讨论】:

      猜你喜欢
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 2014-09-15
      相关资源
      最近更新 更多