【问题标题】:java.sql.SQLException: Network error IOException: No route to host?java.sql.SQLException:网络错误 IOException:没有到主机的路由?
【发布时间】:2014-03-12 09:26:44
【问题描述】:
14:51:34,652 DEBUG [mchange.v2.resourcepool.BasicResourcePool         ] - An exception occurred while acquiring a poolable resource. Will retry.
java.sql.SQLException: Network error IOException: No route to host: connect
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:436)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Caused by: java.net.NoRouteToHostException: No route to host: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:288)
    at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:251)
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:331)

谁能告诉我:

如何解决这个问题?

【问题讨论】:

  • 你和 DB 在同一个网络上吗?显示您的设备和服务器的 ip

标签: java sql jdbc driver sqlexception


【解决方案1】:

这是因为您收到了ICMP“目标主机无法访问”消息(类型 3,代码 1)。

这意味着以下任何一种情况:

  • 您的路由表中没有到目标主机的路由(或者您使用的路由器没有);
  • 防火墙将此消息发回给您。

在第一种情况下,如果可以,请修复路由(也许您忘记启动 VPN?)。在第二种情况下,询问防火墙管理员为什么会发生这种情况(幸运的是,他/她不会回答你“因为是”,而是给你一个真实的理由:p)

【讨论】:

  • @Andres 相当于“你没有到目标主机的路由”;)
  • 是的,这意味着;如果是物理问题,您将遇到连接超时。
  • 视情况而定。即使用 JPA,你会得到一个 java.net.UnknownHostException。
  • 嗯,太好了...我不使用 JPA,但在这方面它似乎和 File 一样糟糕(与 Java 7 中的新文件 API 不同,其中异常终于有意义)跨度>
【解决方案2】:

如果您未连接到服务器,可能会发生这种情况。尝试 ping 它以确保。

【讨论】:

  • 这应该是一条评论
  • 我没有发表任何评论。我告诉他检查他与服务器的连接。
  • 那么我会改写您的答案,以包括检查连接性的方法。否则,这听起来像是评论。
【解决方案3】:

检查 iptables 服务是否已停止。 “服务 iptables 状态”

并通过以下命令从您的系统验证, "telnet server_ip 3306"

参考:https://community.oracle.com/thread/1335778?start=0

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多