报错:ORA"/>
plsql无法连接oracle,报错:ORA
为了本地测试方便,我在本机安装了oracle,几个月前plsql突然无法连接oracle,报错:ORA-12514,在网上找了各种方法都无法解决,最后只能忍辱卸载oracle重新安装,一切又相安无事.
昨天早上,当我想查看测试数据时,悲剧重现,真的烦人.我又去网上一通捣鼓,还是不行,一个坑不能死两次,我决定搞定它.百度,谷歌一直查,无数种尝试,晚上10点,迎来曙光.
在此之前,先整理下oracle服务器,oracle客户端和plsql之间的关系:
oracle服务器: 提供数据存储,查询等功能
oracle客户端: 与oracle服务器通信,通过SQL进行数据库操作
plsql: 一个可视化的工具,通过连接oracle客户端间接操作oracle服务器
以前我一直以为plsql就是一个oracle客户端,哎,惭愧!
开始记录ora_12514的解决方法:
1.确定oracle服务器正常运行
查看服务是否启动:
这两个服务必须启动
测试sqlplus工具:
打开cmd窗口,输入sqlplus,再输入用户名和密码,如果可以正常连接,说明数据库正常
2. 检查,修改oracle客户端配置
检查客户端下的tnsnames.ora,默认情况下,客户端使用这个文件的配置连接服务端,也可以在环境变量中使用TNS_ADMIN去指定其他路径的tnsnames.ora文件
内容如下:
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
根据自己的实例名称修改,注意加粗行,如果没有,加上
检查客户端下的listen.ora
内容如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\dev-soft\oracle11g\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\dev-soft\oracle11g\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC = (GLOBAL_DBNAME = ORCL)(ORACLE_HOME = D:\dev-soft\oracle11g\product\11.2.0\dbhome_1)(SID_NAME = ORCL))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\dev-soft\oracle11g
根据自己的oracle安装路径和实例名称修改,注意加粗行,如果没有,加上
重启Oracle监听程序
3.检查plsql是否已经指定客户端
至此,我的问题得以解决,成功连接!
如果还是无法登录,尝试如下方法:
右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量":
1>.点击"新建", 变量名设置为"TNS_ADMIN", 变量值设置客户端根目录,如:"D:\dev-soft\instantclient_12", 点击"确定";
2>.选择"Path" - 点击"编辑", 添加客户端安装路径:%TNS_ADMIN%
最后点击"确定"退出
注意查看path里面的设置的oracle路径是否正确!
更多推荐
plsql无法连接oracle,报错:ORA
发布评论