Exception in thread "main" java.lang.RuntimeException: get connection error!
at OperateOracle.getConnection(OperateOracle.java:184)
at OperateOracle.AddData(OperateOracle.java:33)
at Test.main(Test.java:14)
Caused by: java.sql.SQLRecoverableException: IO 错误: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at OperateOracle.getConnection(OperateOracle.java:179)
... 2 more
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:375)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:678)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:238)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
... 9 more
Caused by: java.net.ConnectException: 拒绝连接 (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:209)
at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:353)
... 14 more

解决方案 »

  1.   

    你是连接的是windows上的mysql吗?还是linux上的mysql ,如果是linux上的mysql,要不就是的你linux上的防火墙没有关闭,要不就是msyql服务没有启动。
      

  2.   

    我连接的是windos下的oracle数据库,在ecplise上编译好的,使用cmd上也能使用,到Linux下就变成这样了,也不知道是咋回事
      

  3.   

    IP,端口,防火墙,数据库名,数据库名大小写这些都确认一下。------------------------
    新开知识星球(ID:7660766),欢迎大家捧场。
    Java学习不走弯路-让初学者不走弯路简单快捷的完成Java的学习。
    ------------------------
      

  4.   

    我这些都看过了,是不是在Linux上不能用localhost连接啊
      

  5.   

     
    连接的地址就这几个,感觉很无奈啊
    // 定义连接所需的字符串
        // 192.168.0.X是本机地址(要改成自己的IP地址),1521端口号,XE是精简版Oracle的默认数据库名
        private static String USERNAMR = "bhz";
        private static String PASSWORD = "bhz";
        private static String DRVIER = "oracle.jdbc.OracleDriver";
        private static String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
      

  6.   

    linux上用localhost连接window数据库?
    用window数据库的IP地址试一下。
      

  7.   

    不在同一台服务器上面,就是数据库在windows上,从Linux上运行项目进行连接,那个localhost和127.0.0.1都试过了,一直报这个拒绝连接
      

  8.   


    127.0.0.1和localhost都是本机地址,你数据库都不在一台服务器上,怎么连得上?实在不懂,先百度下这两个东西的含义
    您这算得上新时代的刻舟求剑了
    把数据库所在服务器的ip替换掉127.0.0.1
      

  9.   


    在windows机器上用ipconfig命令看一下IP地址是多少,然后用这个IP地址。
    localhost和127.0.0.1表示本地机器,在linux上只能连接linux本机,连不到你的windows。------------------------
    新开知识星球(ID:7660766),欢迎大家捧场。
    Java学习不走弯路-让初学者不走弯路简单快捷的完成Java的学习。
    ------------------------
      

  10.   


    在windows机器上用ipconfig命令看一下IP地址是多少,然后用这个IP地址。
    localhost和127.0.0.1表示本地机器,在linux上只能连接linux本机,连不到你的windows。------------------------
    新开知识星球(ID:7660766),欢迎大家捧场。
    Java学习不走弯路-让初学者不走弯路简单快捷的完成Java的学习。
    ------------------------
    是这个样子啊,我试一下
      

  11.   


    在windows机器上用ipconfig命令看一下IP地址是多少,然后用这个IP地址。
    localhost和127.0.0.1表示本地机器,在linux上只能连接linux本机,连不到你的windows。------------------------
    新开知识星球(ID:7660766),欢迎大家捧场。
    Java学习不走弯路-让初学者不走弯路简单快捷的完成Java的学习。
    ------------------------
    还是不行啊,我这几个ip地址都试了一下子,还是报那个错
      

  12.   

    ping 也ping的通
      

  13.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?
      

  14.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
      

  15.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
    telent拼错了
    是telnet
      

  16.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
    telent拼错了
    是telnet不好意思啊,还是这个错[root@localhost workspace]# telnet 192.168.101.64 1521
    -bash: telnet: command not found
      

  17.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
    telent拼错了
    是telnet不好意思啊,还是这个错[root@localhost workspace]# telnet 192.168.101.64 1521
    -bash: telnet: command not found

    你没装telnet.
    既然能ping通,那把windows的防火墙关掉,再检查一下window的Oracle是否正常启动。
      

  18.   

    window下运行这个命令看看有没有结果
    netstat -oan | find "1521"
      

  19.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
    telent拼错了
    是telnet不好意思啊,还是这个错[root@localhost workspace]# telnet 192.168.101.64 1521
    -bash: telnet: command not found

    你没装telnet.
    既然能ping通,那把windows的防火墙关掉,再检查一下window的Oracle是否正常启动。这种情况下还装telent吗?就是把windos的防火墙关下就行了吧?
      

  20.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
    telent拼错了
    是telnet不好意思啊,还是这个错[root@localhost workspace]# telnet 192.168.101.64 1521
    -bash: telnet: command not found

    你没装telnet.
    既然能ping通,那把windows的防火墙关掉,再检查一下window的Oracle是否正常启动。这种情况下还装telent吗?就是把windos的防火墙关下就行了吧?

    对,不用装telnet
      

  21.   


    linux上执行命令
    telnet 192.168.101.64 1521
    看看有什么反应?出现了这个错误,-bash: telent: command not found
    telent拼错了
    是telnet不好意思啊,还是这个错[root@localhost workspace]# telnet 192.168.101.64 1521
    -bash: telnet: command not found

    你没装telnet.
    既然能ping通,那把windows的防火墙关掉,再检查一下window的Oracle是否正常启动。这种情况下还装telent吗?就是把windos的防火墙关下就行了吧?
    行,谢谢啊,我试下,心里还是没底
      

  22.   

    如果还不行,windows运行这几个命令,然后把结果贴上来
    netstat -oan | find "1521"
    netsh firewall show state
    netsh firewall show config
      

  23.   

    您好,这个还是不好使
    C:\Users\DELL.000>netstat -oan | find "1521"
      TCP    0.0.0.0:1521           0.0.0.0:0              LISTENING       11704
      TCP    127.0.0.1:1521         0.0.0.0:0              LISTENING       11704
      TCP    127.0.0.1:1521         127.0.0.1:64579        ESTABLISHED     11704
      TCP    127.0.0.1:59572        127.0.0.1:1521         TIME_WAIT       0
      TCP    127.0.0.1:64579        127.0.0.1:1521         ESTABLISHED     18876
      TCP    192.168.101.64:1521    192.168.101.64:63777   TIME_WAIT       0
      TCP    192.168.101.64:1521    192.168.101.64:63779   ESTABLISHED     11704
      TCP    192.168.101.64:63777   192.168.101.64:1521    TIME_WAIT       0
      TCP    192.168.101.64:63778   192.168.101.64:1521    TIME_WAIT       0
      TCP    192.168.101.64:63779   192.168.101.64:1521    ESTABLISHED     6008
      TCP    [::]:1521              [::]:0                 LISTENING       11704C:\Users\DELL.000>netsh firewall show state防火墙状态:
    -------------------------------------------------------------------
    配置文件                          = 标准
    操作模式                          = 禁用
    例外模式                          = 启用
    多播/广播响应模式                 = 启用
    通知模式                          = 启用
    组策略版本                        = Windows Defender 防火墙
    远程管理模式                      = 禁用所有网络接口上的端口当前均为打开状态:
    端口   协议  版本  程序
    -------------------------------------------------------------------
    当前没有在所有网络接口上打开的端口。重要信息: 已成功执行命令。
    但是,"netsh firewall" 已弃用;
    请改用 "netsh advfirewall firewall" 。
    有关使用 "netsh advfirewall firewall" 命令
    而非 "netsh firewall" 的详细信息,请参阅
     https://go.microsoft.com/fwlink/?linkid=121488 上的 KB 文章 947709。C:\Users\DELL.000>netsh firewall show config域 配置文件配置:
    -------------------------------------------------------------------
    操作模式                          = 禁用
    例外模式                          = 启用
    多播/广播响应模式                 = 启用
    通知模式                          = 启用重要信息: "netsh firewall" 已弃用;
    请改用 "netsh advfirewall firewall"。
    有关使用 "netsh advfirewall firewall" 命令
    而非 "netsh firewall" 的详细信息,请参阅
     https://go.microsoft.com/fwlink/?linkid=121488 上的 KB 文章 947709。
      

  24.   

    window下执行
    lsnrctl start
    看看有什么结果
      

  25.   

    C:\Users\DELL.000>lsnrctl start
    'lsnrctl' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
      

  26.   

    D:\app\Administrator\product\11.2.0\dbhome_1\bin>lsnrctl start
    'lsnrctl' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
      

  27.   

    @cpongo1 
      

  28.   

    到类似于下面的目录中,打开tnsnames.ora
    C:\oracle\product\11.2.0\client_1\network\admin把127.0.0.1, localhost相关的换成192.168.101.64试一下
      

  29.   


    找个dba或者运维给你弄弄吧
    localhost和127.0.0.1都没弄明白
    我怕你不小心执行rm -rf /*
    或者删库
      

  30.   

    并没有开启MySql的通用权限。