虛擬機中訪問主機上的Oracle數據庫

背景:主機上有Oracle數據庫,在虛擬機中的Ubuntu上部署項目練手,發現虛擬機、主機能互相ping通但是Oracle數據庫卻連接不上。

一、問題排查

1.在虛擬機中ping主機:
虛擬機ping主機
能ping通。
主機ping虛擬機同樣沒問題。

2.端口
再看一下端口,主機上Oracle數據庫的監聽端口是1521,這也是Oracle數據庫默認的端口,如果你安裝Oracle數據庫時沒有進行自己的設置,那麼你的監聽端口也應該是1521,在虛擬機中telnet一下主機的這個端口看看是否能訪問到:
telnet
看了下主機的防火牆已經關掉,並且telnet 8080端口是成功的,說明是oracle的監聽程序的問題。


二、修改Oracle數據庫監聽服務配置

1.配置文件的位置
要先找到Oracle數據庫的監聽服務的配置文件的位置,無論是哪個Oracle數據庫版本,配置文件都叫:listener.ora 。
接下來就找到它,我的版本是Oracle 11g,這是詳細的安裝路徑:
這裏寫圖片描述
這是配置文件的路徑:
配置文件路徑
其他教程上的此文件的路徑並不是那麼的準確,導致我找了好久,這個路徑是要根據安裝Oracle數據庫的方式、版本、設置的路徑去尋找。實在不行就全局搜索配置文件名。


2.修改配置文件
打開配置文件,裏面應該有兩大段,下面的LISTENER部分就是配置監聽的部分,將原本的(HOST = localhost)改爲(HOST = 0.0.0.0)即可。
修改配置文件


三、重啓服務

1.修改完監聽配置文件之後需要重啓Oracle服務和監聽
開始–運行–services.msc

2.找到服務:OracleOraDb11g_home1TNSListener 與 OracleServiceORCL
這裏寫圖片描述

3.把兩個服務啓動即可
右鍵->重新啓動

四、測試

這裏寫圖片描述
成功,之後啓動項目也成功啓動


這和虛擬機上的ubuntu並沒有關係,而是和本機上的Oracle數據庫的監聽配置有關係,即使虛擬機上是其他操作系統,採用本教程的方法也可解決此問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章