`

使用plsql连接本地的oracle显示TNS: no listener

 
阅读更多

问题如图:使用plsql连接本地的oracle库,出现 TNS: no listener 错误。原因listener服务没启动

在运行中输入services.msc,打开win7系统上的服务面板,看到本地数据库的listener服务没启动。

 手动启动tnslistener服务(该服务要想能启动,必须在系统变量中设置ORACLE_HOME变量,并指向oracle服务端的路径)。再用tnsping orcl,发现正常了。

 在系统变量中添加TNS_ADMIN变量,目的是为了指定使用哪个路径下的配置文件(数据源文件),如果想要使用客户端下的数据源文件,路径为%oracle客户端安装路径%\NETWORK\ADMIN,如:F:\app\bin\product\11.2.0\instantclient_11_2\NETWORK\ADMIN

如果在CMD下输入tnsping出现命令未找到,那就是系统变量path里面并没有oracle服务端的bin路径

 

因为没设置成自动启动,再启动TNSListener后,用PLSQL连接,出现了

ORA-12514: TNS:listener does not currently know of service requested in connect descripter

 在oracle的服务端路径下对listener.ora添加以下内容:(参考http://blog.itpub.net/22741583/viewspace-684149/

 再把oracle相关的服务重启了遍,这时出现了以下的错误

 在CMD下输入

lsnrctl status

 
监听已经启动了,进入cmd,输入

> sqlplus /nolog

SQL> connect sys/Oracle11g as sysdba    (采用系统dba用户登录,Oracle11g是安装的时候创建的密码)

SQL> startup

出现错误:

ORA-00119和ORA-00132。附图:(后面的启动成功是修改了pfile文件的路径)

参考:http://blog.csdn.net/xb12369/article/details/26720275,知道是oracle的实例没有启动导致的。

说修改init.ora文件(其实就是pfile用来启动oracle的)就可以了。定位到init.ora.9212015175959(每个人的数字都不一样)。

我的路径是这个:(不同版本的路径不一样

 用文本编辑器打开,并修改里面的local_listener=的值

 

然后回到CMD下,按照上面的命令,启动oracle实例,就可以用plsql连接数据库了。

上面的连接说还可以复制pfile到spfile也能解决,没尝试过。命令如下:

SQL> create spfile from pfile='%pfile文件的路径%'

SQL> startup

  • 大小: 61.1 KB
  • 大小: 21.3 KB
  • 大小: 12.9 KB
  • 大小: 6 KB
  • 大小: 41.9 KB
  • 大小: 7 KB
  • 大小: 16.7 KB
  • 大小: 19.5 KB
  • 大小: 2.6 KB
  • 大小: 7.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics