在Azure中使用PHP OCI8 oci_connect时如何解决ORA-12154:TNS错误
我正在尝试连接到新合作伙伴11g 11.2.0.4.0版的oracle数据库,但收到以下错误: 警告:oci_connect():ORA-12545:连接失败,因为目标主机或对象不存在 合作伙伴确认提供的连接字符串是正确的 这是mine oci_connect()的当前结构和所使用的所述连接字符串:在Azure中使用PHP OCI8 oci_connect时如何解决ORA-12154:TNS错误,php,oracle,azure,oci8,Php,Oracle,Azure,Oci8,我正在尝试连接到新合作伙伴11g 11.2.0.4.0版的oracle数据库,但收到以下错误: 警告:oci_connect():ORA-12545:连接失败,因为目标主机或对象不存在 合作伙伴确认提供的连接字符串是正确的 这是mine oci_connect()的当前结构和所使用的所述连接字符串: $connection_string = '(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(FAILOVER = ON)(ADDRESS = (
$connection_string = '(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = ON)(FAILOVER = ON)(ADDRESS = (PROTOCOL = TCP)(HOST = HOST)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = SERVICE_NAME)))'
$conn = oci_connect($username, $password, $connection_string, 'UTF8', OCI_DEFAULT);
但是,当使用以下结构时:
$connection_string = 'user/password@host:port/service_name'
$conn = oci_connect($username, $password, $connection_string, 'UTF8', OCI_DEFAULT);
它返回:
警告:oci_connect():ORA-12154:TNS:无法解析指定的连接标识符
为了清楚地了解我所做的工作,以下是我创建应用程序服务和安装oci8 php驱动程序的步骤:
编辑:
在与合作伙伴进一步交谈后,很明显,考虑到当前的数据库配置,我无法连接到他们的数据库。正如Christopher Jones在评论中所指出的,这是一个网络问题,在这种情况下,缺乏适当的反馈。用户名和密码分别位于
oci\u connect()
的参数中,它们不应该也在连接字符串中。Sory@Barmar我试图将连接字符串更改为host:port/service\u name在第二个示例中,它不起作用。实际的连接字符串是什么样子的?这些都应该是私有IP或名称,这里没有安全风险。另请参阅:“虽然ORA-12154或ORA-12514等网络错误表明存在Oracle网络命名或配置问题,但根本原因可能是PHP环境设置不正确,Oracle库无法找到tnsnames.ORA配置文件。“嘿@miken32,如果这是一个新手问题,很抱歉,如果使用简易连接命名方法,我不应该在没有tnsnames.ora文件的情况下连接吗?