oracle
:其他机器访问本机提示无监听程序
的原因和解决方法
--kernelboy
一、
原
因:
在
oracle
安装路径中,
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
的文件夹中存在
listener.ora
和
tnsnames.ora
两个文件,如图
其内容如下:
其中本地监听和
network
监听均配置为
localhost
,
所以导致在连接数据库是,本机可以
连接,而远程机器则提醒:无监听程序。
二、
解
决方法:
只要把两个文件中的所有
localhost
字样替换成本机的机器名或者是本机的
ip
地址即可。
1
)
找到本机机器名:右键桌面“我的电脑”
->
“属性”
->
“计算机名”
:
本机机器名为:
“
MICROSOF-7CC821
”
,不带后面的“
.
”号。
2
)
替换
localhost
3
)
重启
oracle
服务:
打开计算机服务,把划红线的两个服务重新启动。
使用“
sqlplus
用户名
/
密码
@ip:1521/
实例名”即可登录到远程
oracle
。
三、
总
结:
由于本地配置监听文件
listener.ora
和
tnsnames.ora
中为
localhost
,
当远程访问时,
远程
机器读到的是
localhost
的
ip
,然后本机会把
localhost
的
ip
给远程机器返回(我怀疑是
127.0.0.1
,有待测试)
,所以远程计算机无法连接到本机的
oracle
。
四、
提
出问题:
我想,
如果两台计算机的实例名都一样
(首先两台机器中
oracle
的其他配置也是一样的)
,
(我设自己的机器为本机)当我访问远程机器时,远程计算机给我返回
localhost
的字样或
者是
(
127.0.0.1
)
,
我突然就连接上
oracle
了,
然而连接上的
oracle
不是远程计算机的
oracle
,
而是我本机的
oracle
?(有待测试)
谁测试过,可是分享一下。
:
kernelboy@qq.com