前几天我遇到了一个奇怪的Oracle问题。我已经在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位生产
7条答案
按热度按时间oalqel3c1#
在通过终端连接时,对密码中的特殊字符使用URL编码**,而不是原始特殊字符**。
如果您连接字符串是:-sqlplus系统/密码@12345@oracle作为sysdba;
可接受的连接URL为:-sqlplus系统/密码%4012345@oracle as sysdba; * .此处%40是@的URL编码*,因此请将所有特殊字符替换为它们各自的URL编码,并在终端中执行连接命令。
egdjgwm82#
我也遇到了同样的问题,我通过修改密码和删除“@”字符解决了这个问题。
@是告诉SQL plus我们要连接哪个连接标识符(服务名/sid),简而言之,避免在密码中使用这个字符。
5ktev3wc3#
我也遇到了相同的问题ORA-12543:TNS:无法访问目标主机
我是这样解决的
开放式SQL语言
连接
输入用户名:系统输入密码:2014年时
则出现以下错误
问题是我密码包含@符号
通过将我的密码输入“HHHHHH@2014”解决了此问题
huwehgph4#
我也得到了ORA-12543:TNS:目标主机不可达。但对我来说,问题出在密码上。
分辨率:需要从现有密码中删除"@",因为@定义了用于在sqlPlus中进行连接的连接标识符。
要更新密码,请执行以下步骤:登录到窗口cmd,然后键入"sqlplus/nolog",然后键入"connect/as sysdba"。连接后,将SYS密码更改为不带@的密码:"更改由new_password标识的用户系统; "
mwg9r5ms5#
(log按系统计dba)
sql〉连接器/ as系统数据库
(then更改用户)
sql〉更改由newuserName标识的用户名
sql〉提交
(now再次尝试使用相同密码的新用户登录,它将正常工作)单击1查看屏幕截图--[][1]](https://i.stack.imgur.com/7fkRN.png)
ktca8awb6#
最近,我安装了Oracle 11g用于测试,安装完成后,Database 11g Express Edition在浏览器上使用系统和Pravin@01密码启动,连接成功。我尝试使用SQL Developer工具后,它也运行正常,但当我尝试使用***SQL PLUS命令行工具连接时,***突然出现错误,
ORA-12543:TNS:无法访问目标主机
然后经过一个小时的研究,我得到了一个解决方案,Oracle将密码中的@字符视为'
第一个月
因此,此问题的解决方案是使用以下命令从密码中删除@字符
我想这篇文章可能对你有帮助。
fwzugrvs7#
我已经在Windows 2016环境中使用Oracle 18 c 64位进行了测试
尝试在密码中使用“@”登录时,请使用以下转义字符序列。
用户名:scott密码:斯科特试验
为了避免这种麻烦,请在登录sqlplus后使用以下命令更改不带@字符的口令。