2

最近几天,我遇到了一个奇怪的预言机问题。我在 tnsnames.ora 中定义了数据库。Oracle 客户端已安装,客户端和客户端/bin 已添加到 PATH。

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

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

ORA-12543: TNS: 目标主机不可访问

当我尝试通过 sqlplus 连接时也是同样的情况

sqlplus 用户名/密码@TNSNAME

情况仅发生在一个工作站上,这意味着它应该可以正常工作。

WS 是 Windows 7 64 位。
数据库:

Oracle 数据库 10g 企业版 10.2.0.5.0 - 64 位生产

4

6 回答 6

12

我遇到了同样的问题,我通过更改密码并删除“@”字符来解决它。它对我有用。

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

于 2015-06-02T05:58:29.960 回答
10

我也遇到了同样的问题 ORA-12543: TNS:destination host unreachable

我以这种方式解决了它

打开 sqlplus

连接

输入用户名:系统输入密码:HHHHH@2014

然后引发以下错误

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

通过将我的密码输入“HHHHHH@2014”来解决它

于 2018-01-31T19:22:23.943 回答
3

我也得到了 ORA-12543 :TNS :destination host unreachable。但对我来说,问题出在密码上。

解决方案:需要从现有密码中删除“@”,因为@ 定义了在 sqlPlus 中用于连接的连接标识符。

要更新密码,请按照以下步骤操作:登录到窗口 cmd,然后键入“sqlplus /nolog”,然后键入“connect / as sysdba”。连接后,将 SYS 密码更改为不带 @ 的密码:“ALTER USER sys IDENTIFIED BY new_password;”

于 2020-04-05T22:59:30.250 回答
2

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

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

用户:scott 密码:scott@test

sqlplus scott/\”scott@test\”@TEST_DB

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

alter user scott identified by "newpassword" 
于 2019-03-01T17:25:41.687 回答
2

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


ORA-12543: TNS: 目标主机不可访问


然后研究了一个小时,得到了Oracle将密码中的@字符当作`

service name or sid

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

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

我认为这篇文章可能对您有所帮助。

于 2018-07-05T05:16:39.020 回答
1

(以 sys dba 身份登录)

sql>conn / as sysdba

(然后更改用户)

sql>alter 由 newuserName 标识的用户用户名

sql>提交

(现在再次尝试使用相同密码的新用户登录)点击1查看屏幕截图 -- ][1]

于 2018-07-05T03:09:53.773 回答