如何遠端訪問oracle 11g數據庫
我的電腦上有 oracle 數據庫,我通過使用 localhost:1521 的 java 程序更準確地使用 ojdbc7 和主機字元串作為“jdbc:oracle:thin:@localhost:1521:orcl”訪問。一切正常,但現在我想通過另一台具有不同網際網路連接的電腦訪問同一個數據庫。我讀到我必須更改 listener.ora 文件並添加 localhost 所在的 IP 地址。
現在我嘗試使用我的電腦的 IP 地址,我在網路連接中設置為 192.168.1.5,在 listener.ora 文件中設置相同,並在我的路由器設置中創建了一個虛擬伺服器,並在那裡設置了相同的 IP 地址和埠。仍然當我嘗試連接到伺服器電腦的 Internet IP(不是 192.168.1.5)時,它會顯示“TNS:no listener”。
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)) ) )
防火牆已關閉。我也嘗試過使用 127.0.0.1 並在路由器中為此創建虛擬伺服器,但沒有奏效。Oracle 11g 安裝在伺服器和客戶端電腦上。
我也嘗試在 listener.ora 文件中使用 0.0.0.0 ip,這樣它就可以監聽所有的 ip,但效果不佳。
有人可以指出我正確的方向。
編輯:不同的網際網路連接意味著一個是我的家庭網際網路(ip:39.40.xx.1xx),另一個是我朋友的家庭網際網路(不同的 ip),我們相距幾英里,使用相同的 ISP。我的電腦充當使用 Windows 10 的伺服器。它的防火牆被禁用。我假設我的朋友會使用我的網際網路 IP 地址,該地址將轉發到我的電腦(192.168.1.5)
假設埠轉發和網路項目按預期工作(可以通過 telnet 主機 1521 檢查)。
確保重新啟動偵聽器服務。
還可以從本地電腦連接到數據庫並執行以下命令:
ALTER SYSTEM SET LOCAL_LISTENER = "(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.5)(PORT=1521))"; ALTER SYSTEM REGISTER;
除此之外,它從偵聽器配置方面看起來不錯。