plsql远程访问数据库 解决ora-12541:TNS:无监听程序
本机为win7 32位系统,为了学习oracle,装了个vbox虚拟机,再装了个win7虚拟机,内装oracle 11g(win7如果要装10g,要选择vista版本,win版本会安装报错).oracle11g安装完后有报了个错误,当时没注意,现在也忘了什么 错了,但是不影响使用.后来想在本机安装plsql来远程连接虚win7上的oracle.查了一些资料,步骤如下:
1.下载plsql,安装.
2.下载Instant Client,点击下载,下载第一个basic就行了,下载完解压缩,以放到主win7 d盘根目录为例:d:instantclient_11_2
3.在d:instantclient_11_2新建tnsnames.ora,用记事本编辑.
4.到虚win7上的oracle安装目录找到 …appadminproduct11.2.0dbhome_1NETWORKADMIN nsnames.ora,打开,比如数据库实例是orcl,找到如下代码,拷贝到本机d:instantclient_11_2 nsnames.ora里
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 虚拟机IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
5.添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径d:instantclient_11_2 nsnames.ora,plsql通过这个找到orcl连接字符串
6.添加一个环境变量NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
7.打开PLSQL,不用登陆,工具-首选项-ORACLE-连接:
勾选检查连接
Oracle主目录: d:instantclient_11_2
OCI库: d:instantclient_11_2oci.dll
经过以上几步之后,重启PLSQL,问题来了,报错:ora-12541:TNS:无监听程序. ping是可以ping得通的,虚win7上的监听也开着.经过不懈的努力,多次试验终于解决了:
1.虚拟机网络选择桥接,并在虚拟机内网络连接IPV4设置静态IP
IP地址:192.168.1.111 (111可修改成自己的 1-255)
子网掩码:255.255.255.0
默认风头:192.168.1.1
首选DNS服务器:192.168.1.1
修改完记得主win7上 ping 192.168.1.111 ping得通再继续往后.
2.修改..appadminproduct11.2.0dbhome_1NETWORKADMINlistener.ora
SID_NAME = CLRExtProc 改为 SID_NAME = orcl orcl是实例名
HOST = localhost 改为 HOST = 192.168.1.111
3.修改..appadminproduct11.2.0dbhome_1NETWORKADMIN nsnames.ora
两处 HOST = localhost 改为 HOST = 192.168.1.111
SID = CLRExtProc 改为 SID = orcl
好了,重启oracle,监听,主win7上的plsql就可以远程连接虚拟机上的数据库了.