---------------------------------------前景介绍,可直接跳至正文-----------------------------
我是第一天学oracle的新手,今天一直重装oracle11g,不是因为之前用过oracle所以重装,而是因为一遍装不好,所以才叫作重装。
我的环境是win7,64位。在本机使用oracle主要就是自己连自己。。
首先是安装到最后Oracle Net Configuration Assistant 失败,经网上查证说不要紧,直接点击确认,完成。安装好之后,只有两个服务,还好可以启动。然后就不知道要做什么了。。
然后,从网上查到说要先启动监听服务。可是我那两个服务里面根本就没有监听器。。然后查到说要添加监听器,又查到说要创建数据库,经过一番查证应该是先添加监听器,再创建数据库。添加监听器呢,可以通过开始》所有程序》Oracle - OraDb11g_home1》配置和移植工具》Net Manager,创建数据库可以通过Database Configuration Assistant。添加监听器就是点击添加,然后在右侧配置监听位置和数据库服务,接着创建服务命名,参数对应刚才配置的监听器。这里的主机名我开始使用的是localhost,可是始终打不开listener服务,上网搜了一下,我把主机名也改成了localhost,还重启了,仍然不行。然后就改成了自己的ip地址。监听服务才终于能启动了。数据库的创建我是参照了一个教程一步一步点下去的,没什么特别可说的。事实是点到需要启动监听器的时候,才去配置监听器的。奇怪的是,创建好数据库之后,Database Configuration Assistant就打不开了。。
这样,已经可以连接数据库了。
sqlplus /nolog
conn /as sysdba;
然后就想用用传说中的plsql,结果又打不开。据网友说, 因为我安装的jre7是64位,所以oracle自带的plsql打不开,要下载一个plsql。并且plsql目前还不支持64位客户端,所以又去下载了32位的客户端,还好,比较小。然后先打开plsql,取消登陆框,plsql会自动打开,打开菜单tools》preference,更改OCI Library为32位客户端的oci.dll的路径。
--------------------------------正文----------------------
这样再次打开plsql,使用sysdba登录,终于也就到了如题的错误处了。
ORA-12154:TNS:could not resolve the connect identifier specified
网友说到了oracle根目录下/NETWORK/ADMIN,下面的几个文件。listener.ora,tnsnames.ora。有网友提醒多余空格的问题,被我消灭后,重启服务发现还是不行。然后就走向了死胡同。搜索到的结果基本也都看不懂。
---------------------------正文的正文-------------------------
终于通过对比那个目录下的sample文件夹里面的listener.ora,发现listener.ora这个文件里面有一行不对头。
LISTENER =
(DESCRIPTION=
(ADDRESS=...)
)
而sample里面明明写的是ADDRESS_LIST。把这里修改之后,重启服务,成功登录plsql,搞定!
----------------------------------后续-------------------------
那么到底是怎么回事呢,为什么这个自动生成的文件会是错误的呢。
通过测试我发现,使用Net Manager修改监听器之后,listener.ora这里的ADDRESS_LIST又自动变成了DESCRIPTION。
所以罪魁祸首是Net Manager!?这个问题我还没有找到答案,期待将来能得到高手的解答。。