ORA-12541:TNS-12560:ORA-12518:ORA-28040:ORA-01017
说明#
环境(参考):
Oracle 12c
SQL Developer/Navicat Premium(64位)连接数据库
后续出现的错误代码:
- ORA-12541: no listener
- TNS-12560:协议适配器错误
- TNS-00530:协议适配器错误
- ORA-12518
- ORA-12514
- ORA-28040:没有匹配的验证协议
- ORA-01017:用户名:/口令无效
- 注册表或服务没有TNS监听器项目
错误#
原因#
找不到监听器
net 却说有监听器
Windows服务中也找不到TNS服务
于是查阅资料说要找到安装目录下的bin/lsnrctl.exe
输入start,报告协议适配器错误
再次查阅,发现可能是bin/tnslsnr.exe文件不存在或者路径配置问题,首先检查注册表
发现没有TNS的服务
又在bin目录下找到该文件
运行tnslsnr.exe
报告说没有配置OracleHome环境变量,笔者打开环境变量后发现只配了path,所以再次配置环境变量
ORACLE_HOME
D:\app\lenovo\virtual\product\12.2.0\dbhome_1
TNS_ADMIN
D:\app\lenovo\virtual\product\12.2.0\dbhome_1\network\admin
重启! 然而没什么卵用,注册表和服务依然没有TNS
start lsnrctl.exe,依然报错
笔者只好绝望的再去打开tnslsnr.exe,令我茫然的是如下界面:
一片空白!之后突然反应过来,这是不是启动成功了?!
然后我再次运行lsnrctl.exe
监听程序已启动!
笔者又检查了服务和注册表,依然没有变化,但我打算用Navicat Premium连接了
很遗憾,连接失败
百度得知这个错误叫监听器无法分发客户机连接
查询后感觉没问题啊
关闭tnslsnr.exe窗口和,又出现了没有监听器的错误。。。。
启动tnslsnr.exe,连接
启动lsnrctl.exe
又出现无法分发!!
很明显,问题出在tnslsnr.exe上,没有人来启动它,本来应该是注册表启动,但我竟然整个TNS目录都没有,别人都是ImagePath改改就好。
所以我仿照MNS的格式手写了注册表。
重启,发现服务里面有TNS这一项了,但是启动时会报错!说帐号密码错误,笔者也不知道什么东东,直接不要帐号了,改本地登录。
但是!!Navicat依旧不行!!!
继续百度!!
原因是用weblogic去连Oracle12c的数据库,创建连接池的时候报的这个错误。
此错误是用了Oracle11g的驱动连12c的数据库,需要在$ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora中配置:
SQLNET.ALLOWED_LOGON_VERSION=8
注意的是:
1.如果没有这个文件,则需要建立这个文件。
2.如果是RAC,多个节点都需要加。
3.不需要重启数据库。
新的问题出现,多次连接失败(10次)后,System帐户被锁定!!解锁
SQL Deveploper成功连接,Navicat还是不行,后来有看到大小写的问题,可是当我把我的Oracle 12c 去除大小写之后,连SQL Deveploper都登不上,只好改回去
目前基本上确定 ORA-01017 的问题出在编码上或者大小写,可能是软件转化大小写的原因。
从注册表得知我的编码是GBK,暂时不动他,把system 密码改成123456,哈哈,这样不会有大小写了吧!
哦,对了,我还设置了一样东西,不知道有没有用,菜鸟一个,啥都不懂哈哈, 我勾了兼容。
终于搞定了,不喜欢重装,所以一直折腾,TNS注册表那块是我手写的,有安全隐患,所以像这种建议重装
很感谢您能看到最后,当出现监听器时,我就感觉到这是一场硬战,于是一边调试一边记录,希望能给朋友提供参考意见。前前后后花了我8个小时,也去掉了一些尝试过但没有用的方法,思路不是很清晰,见谅。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?