• 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数据库了。

  • 相关阅读:
    inndb 刷脏页
    mysql 创建索引
    mysql 索引异常:
    mysql change buffer
    mysql 事务
    mysql 全局锁和表锁
    mysql 索引优化
    mysql innoDB使用b+树作为索引
    mysql 中redo log bin log
    mysql 隔离级别
  • 原文地址:https://www.cnblogs.com/bearduncle/p/7650491.html
Copyright © 2020-2023  润新知