最后几天,我与一个奇怪的神谕问题面对面。 我在tnsnames.ora中定义了数据库。安装了Oracle客户端,客户端和客户端/ bin已添加到PATH。
Ping
有效,tnsping
有效,我可以使用telnet通过数据库端口连接到主机。
当我尝试运行尝试连接到db的应用程序时,我得到了
ORA-12543:TNS:目标主机无法访问
当我尝试通过sqlplus连接时,情况相同
sqlplus用户名/密码@ TNSNAME
情况只发生在一个工作站上,它的意思是它应该有效。
WS是Windows 7 64位 数据库:
Oracle数据库10g企业版10.2.0.5.0版 - 64位生产
答案 0 :(得分:5)
我遇到了同样的问题,我通过更改密码和删除“@”字符解决了这个问题。它对我有用。
@告诉SQL plus我们要连接哪个连接标识符(服务名称/ sid)。简而言之,避免在密码中使用此字符。
答案 1 :(得分:3)
我也遇到了同样的问题ORA-12543:TNS:目标主机无法访问
我以这种方式解决了它
打开sqlplus
连接
输入用户名:system 输入密码:HHHHH @ 2014
然后出现以下错误
问题是我的密码包含@符号
通过将我的密码输入“HHHHHH @ 2014”
解决了这个问题答案 2 :(得分:2)
我也无法访问ORA-12543:TNS:目标主机。 但是对我来说,问题出在密码上。
解决方法:需要从现有密码中删除“ @”,以便 @定义用于在sqlPlus中进行连接的连接标识符。
要更新密码,请按照以下步骤操作: 登录到Windows cmd,然后键入“ sqlplus / nolog” 然后“连接/作为sysdba”。 连接后,将SYS密码更改为不带@的密码: “通过new_password识别ALTER USER SYS;”
答案 3 :(得分:1)
最近,我已安装Oracle 11g进行测试,并在安装完成后 Database 11g Express Edition 在浏览器上使用系统和Pravin @ 01密码成功连接。在尝试使用SQL Developer工具后,它也可以正常工作,但是当我尝试使用 SQL PLUS命令行工具 进行连接时,突然给我一个错误,因为
ORA-12543:TNS:目标主机无法访问
然后经过一个小时的研究,我得到了一个解决方案,Oracle将密码中的@字符视为`
service name or sid
因此解决此问题的方法是使用
从密码中删除@字符ALTER USER系统IDENTIFIED BY'这是您的新密码,其中应包含字符 并且数字只能尝试消除特殊字符”;
我认为这篇文章可能对您有所帮助。
答案 4 :(得分:0)
(以sys dba登录)
sql> conn / as sysdba
(然后更改用户)
sql>由newuserName标识的更改用户名
sql>提交
答案 5 :(得分:0)
我已经在Windows 2016环境中使用Oracle 18c 64位进行了测试
尝试在密码中使用“ @”登录时,请使用以下转义字符序列。
用户:scott 密码:scott @ test
sqlplus scott/\”scott@test\”@TEST_DB
为了避免这种麻烦,登录到sqlplus后,请使用以下命令更改密码,而不使用@字符。
alter user scott identified by "newpassword"