1.oracle服务端安装了oracle11g64位服务端,在服务端,sqlplus可以连接;
2.客户端安装了oracle11g32位客户端,使用plsql(plsql不支持64位客户端),配置了监听,访问时候报ORA-12541;
3.关闭服务端防火墙,客户端访问,依旧报ORA-12541;
4.查看服务端监听listener.ora,发现安装的时候监听没有更改为实际的(如果安装的时候没有报错,并且防火墙也关闭了,往往都是这儿的原因,大部分时间oracle11g安装时,listener.ora文件是默认生成就正确的,这是第二次遇到不正确的情况),修改为如下(SID_LIST_LISTENER和LISTENER是必须的),重启监听服务,结果还是报ORA-12541;
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)//SID和你的服务名要一致
(ORACLE_HOME =e:/app/dbhome)//这儿就是你oracle服务的Bin文件所在的上级目录,我这儿是由于环境变量太长,安装通不过,把一些路径给去掉了
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))//这儿最好修改为本机计算机名,不要使用本机ip或者localhost
)
)
5.这个时候就比较扯了,oracle11g,需要监听是本机计算机名最好,如果是localhost或者是本机ip,都有可能会报ORA-12541。