SQLPlus报ORA-24454主机名错误但telnet正常,需添加哪个主机到/etc/hosts
用户提问
我正尝试通过sqlplus连接部署在远程实例上的Oracle数据库,使用的命令如下:sqlplus user@hostname.com:port/SchemaName。输入密码后抛出客户端主机相关异常,报错截图如下:
我的问题是,需要将哪个主机名写入/etc/hosts文件才能解决该问题?
我使用telnet可以正常连通同一实例,无任何问题。我的设备运行系统为MacOS 10.15.7。
Oracle客户端是通过官方渠道下载安装的,安装情况见如下截图:
安装包已移动到对应合规目录,截图如下:
我也已将$PATH导出配置写入~/.bash_profile文件,配置截图如下:
解决方案
你遇到的是Oracle服务端反向主机名解析校验失败问题,和远程服务端的域名解析无关,你需要配置本地主机名的本地解析:
- 终端执行
hostname命令,获取你当前Mac的本地主机名,记为本地主机名 - 用sudo权限编辑
/etc/hosts文件,添加以下两条记录:127.0.0.1 本地主机名 localhost ::1 本地主机名 localhost - 执行
dscacheutil -flushcache刷新本地DNS缓存 - 重新执行sqlplus连接命令即可正常访问
原因说明
sqlplus发起Oracle连接时,服务端会反向解析发起请求的客户端IP对应的主机名,如果解析失败就会抛出该类异常。telnet仅验证四层端口连通性,不会触发Oracle服务端的解析逻辑,所以不会出现报错。
内容的提问来源于stack exchange,提问作者Imran Zahoor
相关产品推荐
相关产品推荐

