You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLPlus报ORA-24454主机名错误但telnet正常,需添加哪个主机到/etc/hosts

用户提问

我正尝试通过sqlplus连接部署在远程实例上的Oracle数据库,使用的命令如下:sqlplus user@hostname.com:port/SchemaName。输入密码后抛出客户端主机相关异常,报错截图如下:
报错截图

我的问题是,需要将哪个主机名写入/etc/hosts文件才能解决该问题?

我使用telnet可以正常连通同一实例,无任何问题。我的设备运行系统为MacOS 10.15.7。
telnet连通截图

Oracle客户端是通过官方渠道下载安装的,安装情况见如下截图:
客户端版本截图

安装包已移动到对应合规目录,截图如下:
安装目录截图

我也已将$PATH导出配置写入~/.bash_profile文件,配置截图如下:
环境变量配置截图


解决方案

你遇到的是Oracle服务端反向主机名解析校验失败问题,和远程服务端的域名解析无关,你需要配置本地主机名的本地解析:

  1. 终端执行hostname命令,获取你当前Mac的本地主机名,记为本地主机名
  2. 用sudo权限编辑/etc/hosts文件,添加以下两条记录:
    127.0.0.1   本地主机名 localhost
    ::1         本地主机名 localhost
    
  3. 执行dscacheutil -flushcache刷新本地DNS缓存
  4. 重新执行sqlplus连接命令即可正常访问

原因说明

sqlplus发起Oracle连接时,服务端会反向解析发起请求的客户端IP对应的主机名,如果解析失败就会抛出该类异常。telnet仅验证四层端口连通性,不会触发Oracle服务端的解析逻辑,所以不会出现报错。


内容的提问来源于stack exchange,提问作者Imran Zahoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:18:02