java連接VMware虛擬機Oracle數據庫問題


最近在電腦上裝了虛擬機,為的是在虛擬機上安裝Oracle數據庫,Oracle實在太占內存,配置低的電腦裝個Oracle幾乎就癱了,沒辦法,搞個虛擬機玩玩。我虛擬機用的是xp系統,順便懷念下經典。裝好Oracle之后,虛擬機使用pl/sql developer可以連接,但是物理機Java連接卻始終報一個錯誤:

1 ### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 異常: The Network Adapter could not establish the connection)
2 ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 異常: The Network Adapter could not establish the connection), mergedContextConfiguration = [MergedContextConfiguration@578f7a8 testClass = UserTest, locations = '{classpath*:/META-INF/spring/spring-*.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]], class dirties context [false], class mode [null], method dirties context [false].

 

網上搜羅各種解決辦法,終於解決了。話不多說:

1:cmd命令行輸入hostname查看主機名並記錄主機名,如UAFDHGJK;

2:cmd命令行輸入ipconfig查看IP地址,如192.168.0.123;

3:修改C:\WINDOWS\system32\drivers\etc目錄下hosts文件,在hosts文件最后一行添加   192.168.0.123    UAFDHGJK

4:修改Oracle安裝目錄D:\oracle\softwarelocation\NETWORK\ADMIN下的監聽文件listener.ora

# listener.ora Network Configuration File: D:\oracle\softwarelocation\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oracle\softwarelocation)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\softwarelocation\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 這里改為主機名)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\oracle\basemenu

5:修改Oracle安裝目錄D:\oracle\softwarelocation\NETWORK\ADMIN下的監聽文件tnsnames.ora

# tnsnames.ora Network Configuration File: D:\oracle\softwarelocation\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 這里改為主機名)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oracle)
    )
  )

LISTENER_ORACLE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 這里改為主機名)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

6:重啟tnslsnr。打開cmd輸入命令:

lsnrctl stop  
lsnrctl start
lsnrctl stat

7:cmd輸入命令:   

lsnrctl stat

查看Oracle監聽數據已經改為配置的IP地址啦!

此時就可以通過正常Java連接數據庫的方式連接虛擬機Oracle數據庫了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM