ORA-12543: TNS:目标主机不可达,但telnet和传输工作



最后几天我面对一个奇怪的oracle问题。我在tnnames .ora中定义了数据库。已安装Oracle客户端,并已将client和client/bin添加到PATH中。

Ping工作,tnsping工作,我可以通过telnet通过数据库端口连接主机。

当我尝试运行应用程序试图连接到数据库时,我得到

ORA-12543: TNS:目标主机不可达

当我尝试通过sqlplus

连接时也是同样的情况

sqlplus用户名/password@TNSNAME

这种情况只发生在一个工作站上,一般情况下它应该可以工作。

WS是windows 7 64位。
数据库:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

我有同样的问题,我通过更改密码和删除"@"字符来解决它。

@是告诉SQL plus我们想要连接哪个连接标识符(服务名/sid)。总之,避免在密码中使用此字符。

我也遇到了同样的问题ORA-12543: TNS:目标主机不可达

i resolve it in this way

开放sqlplus

连接

enter user-name:system输入密码:HHHHH@2014

则引发以下错误

问题是我的密码包含@符号

通过将我的密码输入"HHHHHH@2014"

解决了这个问题

我也得到ORA-12543:TNS:目标主机不可达。但对我来说,问题出在密码上。

解决方案:需要从现有密码as中删除"@"@定义sqlPlus中用于连接的连接标识符。

要更新密码,请执行以下步骤:登录到窗口cmd,然后输入"sqlplus/nolog"然后"connect/as sysdba"。连接上后,将SYS密码更改为不带@的密码:"ALTER USER sys IDENTIFIED BY new_password;"

(以sys dba身份登录)

sql>conn/as sysdba

(然后修改用户)

sql>alter user username identified by newuserName

sql>提交

(现在再次尝试使用相同密码的新用户登录,它将工作)点击1查看截图——[1]

最近,我为了测试安装了Oracle 11g,安装完成后,用系统和Pravin@01密码在浏览器上启动了Database 11g Express Edition,连接成功。在我尝试使用SQL开发工具后,它也工作得很好,但当我试图使用SQL PLUS命令行工具连接时,它突然给了我一个错误,


ORA-12543: TNS:目标主机不可达


然后经过一个小时的研究,我得到了一个解决方案,Oracle将密码中的@字符视为'

service name or sid

所以这个问题的解决方案是使用 从密码中删除@字符

ALTER USER system IDENTIFIED BY '这是你的新密码,应该包含字符和数字只尝试消除特殊字符';

我想这篇文章可能对你有帮助。

我在Windows 2016环境下使用Oracle 18c 64位进行了测试

当尝试使用密码中的"@"登录时,请使用以下转义字符序列。

用户:斯科特密码:scott@test

sqlplus scott/”scott@test”@TEST_DB

为了避免这种烦恼,在登录到sqlplus后,使用以下命令更改不带@字符的密码。

alter user scott identified by "newpassword" 

使用URL编码在您的密码中使用特殊字符,而不是通过终端连接时使用原始的特殊字符

: -

- sqlplus system/Password@12345@oracle as sysdba; 然后

可接受的连接url将是:- sqlplus system/Password%4012345@oracle as sysdba;。这里%40@URL Encoding,因此将所有特殊字符替换为各自的URL Encoding并在终端中执行连接命令

您的当前密码必须包含"@"符号,这就是问题所在。所以,只需重置密码,不要在新密码中使用此符号。

最新更新