关于:TNS 监听程序当前无法识别连接描述符中请求服务(本机作为数据库)

1.首先记住几个命令

在cmd下:lsnrctl  start,lsnrctl status,lsnrctl stop

在sql>下:shutdown,startup,(要在管理员的权限下使用)

2.开始正题

在安装数据库的文件下,找到,db_1,networt,admin下面的listener.ora和tnsnames.ora这两个文件

现在开始细说,这个两个文件究竟是做什么的 :

  首先:最常用的当属tnsnames这个文件,也是出错最多的地方,它主要工作是,如果你需要连接多个数据库。那么在这里你要写出许多类似如下的

test =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.162)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test )
)
)

其中红色的为你要连接数据库的具体项目,需要自己修改。

但是!!如果你要以本机作为服务器,需要将HOST的后面改为,localhost,这样,即使在脱机的情况下,你也可以完美的连接到数据库。

再说一下listener的这个文件,这个主要是用来调服务器的,一般格式如下

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test)
(SID_NAME = test)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ASUS-d4b1f5502)(PORT = 1521))
)
)

当然,要注意的还是这些红色标出的位置,sid为你的数据库的名字,而host是你的主机名。什么?主机名不知道,那就右击我的电脑,属性,里面就有你电脑的名字了,而在我的实验中,将之改为localhost同样可行,(个人感觉,如果此地你改为localhost,在tnsnames中也要同样改为localhost,万无一失)

如此一来,所有问题迎刃而解!

原文地址:https://www.cnblogs.com/weizizhe/p/3286535.html