如何解决使用oci_connect连接到Oracle
我正在尝试使用PHP建立成功的Oracle连接。
这是我的连接字符串的外观:
<?PHP
$conn = oci_connect("USER","PASS","LOSINGMINDHOST");
if (!$conn) {
$e = oci_error();
error_log(trigger_error(htmlentities($e['message'],ENT_QUOTES),E_USER_ERROR));
}
oci_close($conn);
?>
出现以下错误:
Warning: oci_connect(): ORA-12170: TNS:Connect timeout occurred
哪个指向带有oci_connect的行。
我正在使用Windows Server 2019。
extension=oci8_12c
PHP_oci8_12c.dll
服务器已安装了64位Ocale 12g即时客户端。
我们已经使用tnsnames.ora文件确认了使用ODBC Data Source Administrator客户端的连接。
PROD_MIR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (COMmunitY = ttp.world)(PROTOCOL = TTP)(Host = LOSINGMINDHOST)(Port = 1524))
(ADDRESS = (COMmunitY = ttp.world)(PROTOCOL = TTP)(Host = LOSINGMINDHOST)(Port = 1551))
(ADDRESS = (COMmunitY = ttp.world)(PROTOCOL = TTP)(Host = LOSINGMINDHOST)(Port = 1538))
)
(CONNECT_DATA =
(SERVICE_NAME = PROD)
)
)
我们将TNS_ADMIN路径添加到服务器上的环境变量。
我们已经重新启动了服务,甚至重新启动了服务器。
解决方法
如文档(https://www.php.net/manual/en/function.oci-connect.php)所述:
oci_connect(字符串$ username,字符串$ password [,字符串$ connection_string [,字符串$ character_set [,int $ session_mode]]]):资源
connection_string 包含要连接的Oracle实例。它可以是»轻松连接字符串,或tnsnames.ora 文件中的连接名称,也可以是本地Oracle实例的名称。
这是您的情况,请使用正确的tnsnames.ora连接名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。