前提:本地oracle数据库能正常使用。
数据库:oracle 11g
虚拟机:VMware_workstation_full_12.5.2
本机系统:Windows 7 旗舰版
虚拟机系统:openSUSE LINUX
网络适配器 VMware Network Adapter VMnet8 的ip地址和虚拟机系统的ip地址在同一网段就可以相互ping通
VMnet8 ip:192.168.14.1
虚拟机ip:192.168.14.131
Windows ip:192.168.1.111
在windows中ping Linux系统192.168.14.131 可以ping通
在虚拟Linux中ping Windows系统192.168.1.111 也可以ping通
数据库在Windows中可以正常使用,plsql能够正常连接。
但是虚拟机中就是连不上window的oracle数据库。
在Linux中尝试telnet 192.168.1.111 1521 连接失败
在window中尝试telnet 192.168.1.111 1521 不能打开到主机的连接 在端口1521 。。。。
这里初步判断是防火墙的原因 使用命令查看netstat -a
发现了原因:这里将连接限制为127.0.0.1 也就是本机连接 ,查资料发现监听出错,当监听设置为localhost时就会出现这样的情况
解决方法 : 只需要将监听改为主机的名称即可
找到oracle安装目录下H:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN 的 listener.ora文件
将
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
改为
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC201701061306)(PORT = 1521))
)
)
其中PC201701061306为本机的名称。
在window中尝试telnet 192.168.1.111 1521 连接成功。