在Oracle 11g上折腾了两个礼拜了,今天又碰到了这样一个问题:打开SQL Developer之后,在连接 本 机 的某个数据库时,提示
“The   Network   Adapter   could   not   establish   the   connection  供应商代码 20”,如下图:

The   Network   Adapter   could   not   establish   the   connection  供应商代码 20(Oracle 11g release2)_Oracle 11g
自己是折腾不好了,所以在网上查了好多内容。关于这个问题,貌似大部分都和监听器有关。
在$ORACLE_HOME/NETWORK/ADMIN目录下,存放着监听器的配置文件,其中,那个叫做SAMPLE的文件夹是监听器配置的举例,虽然是英文,但花点时间的话还是能基本看懂的。回到正题,SAMPLE文件夹旁边还有两个扩展名为.ora的文件,可以用记事本之类的软件打开。里面存放着监听器的各种配置。
回到这个故障的话题,网上看到一个方法,说是主机名可能设置的不对,就是那两个.ora文件中的HOST选项,于是查看了一下详细情况:
listener.ora文件中HOST的值为180.111.140.106,看上去是个外网地址;
tnsnames.ora文件中的HOST值为localhost,很显然是本机地址;
既然这两个HOST值不一样,那估计问题就出在这了,因为要连接的是本机上的数据库,所以就把两个HOST的值都改成127.0.0.1,然后找到Windows服务中的OracleDb11g_homeTNSListener这条,先停止它,然后再启动。如下图:

The   Network   Adapter   could   not   establish   the   connection  供应商代码 20(Oracle 11g release2)_Oracle 11g_02
然后回到SQL Developer,重新连接数据库,OK~

The   Network   Adapter   could   not   establish   the   connection  供应商代码 20(Oracle 11g release2)_Oracle 11g_03