正在尝试使用以下用户 id 连接:scott
测试没有成功。
ora-12541: tns:no listener
登录到数据库:orcl
您的用户名和/或口令无效。
解决方法:
1。看看注册表中的hkey_local_machine\system\controlset001\services\oracleorahome92tnslistener键值是否正确(对应tnslsnr.exe)
2。手工启动呢?
c:\lsnrctl start
然后在看状态
lsnrctl>status
3。从oracle的错误提示来看,是说tns:no listener ,估计是某种服务没有启动,打开windows管理工具->服务,一看,有一个oracleorahome90tnslistener这样的服务,和错误信息题是一致,基本就可以肯定是这个服务所引发的问题。再一看,该服务没有启动,遂手工启动,刷新后一看,该服务居然马上就自动关闭了。重试n次,结果一样。到google搜索看看,没想到这还是一个普遍的问题,有一个人提出,把安装目录下的listener.ora打开察看。如:d:\oracle\ora90\network\admin\listener.ora。
打开该配置文件后发现如下一段配置信息:
listener =
(description_list =
(description =
(address_list =
(address = (protocol = ipc)(key = extproc0))
)
(address_list =
(address = (protocol = tcp)(host = local)(port = 1521))
)
)
)
当看到这一行host=local 的时候,问题解决了。原来是由于几天装好oracle后,又改了windows的计算机名,而这个配置文件中记录的监听主机名还是原来的名称,这也就怪不得,oracleorahome90tnslistener服务无法启动了,马上修改为现在的计算机名,再次启动oracleorahome90tnslistener服务成功,pl/sql developer连接oracle数据库成功,不能登陆故障排除。
总结:oracle比较强调手动功能调整,将一些配置信息放置在配置文件中。不像sqlserver一样,几乎把任何信息都放在注册表中,当然了这也符合oracle作为一个跨平台数据库的精神。但对初学者来说,确有一定难度,不像sqlserver那么“傻瓜”,再解决这个问题时,差点又重装一次oracle,看来遇到问题多google多分析,还是屡试不爽的。
4.tnsnames.ora中的内容。
# tnsnames.ora network configuration file: e:\oracle\ora92\network\admin\tnsnames.ora
# generated by oracle configuration tools.
inst1_http.soft-dept.com =
(description =
(address_list =
(address = (protocol = tcp)(host = tt)(port = 1521))
)
(connect_data =
(server = shared)
(service_name = modose)
(presentation = http://hrservice)
)
)
mygod.soft-dept.com =
(description =
(address_list =
(address = (protocol = tcp)(host = tt)(port = 1521))
)
(connect_data =
(service_name = mygod)
)
)
mydb.soft-dept.com =
(description =
(address_list =
(address = (protocol = tcp)(host = tt)(port = 1521))
)
(connect_data =
(server = dedicated)
(service_name = mydb)
)
)
extproc_connection_data.soft-dept.com =
(description =
(address_list =
(address = (protocol = ipc)(key = extproc0))
)
(connect_data =
(sid = plsextproc)
(presentation = ro)
)
)
mydb是安装时默认创建的,mygod时候来创建的,前者可以连接,后者不行。
mygod.soft-dept.com =
(description =
(address_list =
(address = (protocol = tcp)(host = tt)(port = 1521))
)
(connect_data =
(service_name = mydb)
)
)