无法在eclipse中建立数据库连接
Posted
技术标签:
【中文标题】无法在eclipse中建立数据库连接【英文标题】:Not able to establish database connection in eclipse 【发布时间】:2015-06-19 09:10:21 【问题描述】:为了使用 JPA,我想在 Eclipse 中建立一个新的数据库连接 (DB2)。从 JPA 的角度来看,在 Data Source Explorer
视图中,当我尝试创建新的数据库连接时,我在尝试 ping 服务器时收到以下日志。
org.eclipse.datatools.connectivity.exceptions.DBNotStartException: No start database command was issued. ErrorCode = -4499, SQLState = 08001.
at org.eclipse.datatools.enablement.ibm.db2.internal.luw.JDBCLUWJDBCConnection.getConnectException(JDBCLUWJDBCConnection.java:74)
at org.eclipse.datatools.connectivity.ui.PingJob.getTestConnectionException(PingJob.java:81)
at org.eclipse.datatools.connectivity.ui.PingJob.run(PingJob.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: com.ibm.db2.jcc.am.ro: [jcc][t4][2043][11550][4.8.87] Exception java.net.ConnectException: Error opening socket to server example.example.com/51.37.93.117 on port 50,000 with message: Connection timed out: connect. ERRORCODE=-4499, SQLSTATE=08001
at com.ibm.db2.jcc.am.gd.a(gd.java:319)
at com.ibm.db2.jcc.am.gd.a(gd.java:337)
at com.ibm.db2.jcc.t4.zb.a(zb.java:378)
at com.ibm.db2.jcc.t4.zb.<init>(zb.java:76)
at com.ibm.db2.jcc.t4.a.y(a.java:306)
at com.ibm.db2.jcc.t4.b.a(b.java:1796)
at com.ibm.db2.jcc.am.lb.a(lb.java:570)
at com.ibm.db2.jcc.am.lb.<init>(lb.java:522)
at com.ibm.db2.jcc.t4.b.<init>(b.java:306)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:214)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:456)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.createConnection(JDBCConnection.java:328)
at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:105)
at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:96)
at org.eclipse.datatools.enablement.ibm.db2.internal.luw.JDBCLUWConnectionFactory.createConnection(JDBCLUWConnectionFactory.java:26)
at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)
at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)
at org.eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.java:76)
at org.eclipse.datatools.connectivity.ui.PingJob.run(PingJob.java:59)
... 1 more
Caused by: java.net.ConnectException: Connection timed out: 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 com.ibm.db2.jcc.t4.ab.run(ab.java:34)
at java.security.AccessController.doPrivileged(Native Method)
at com.ibm.db2.jcc.t4.zb.a(zb.java:372)
... 18 more
我可以使用DbVisualizer成功连接到数据库。
【问题讨论】:
【参考方案1】:打开到服务器 machine 的套接字时出错:
端口 60,000 带有消息:连接被拒绝。 ERRORCODE=-4499,SQLSTATE=08001
端口 50,000 带有消息:连接超时:连接。 ERRORCODE=-4499, SQLSTATE=08001
在第一个中,拒绝连接可以是 50,000(端口)或 60,000(TCP/IP)。
在您的情况下,问题可能是由于:
-
有另一个实例在使用该端口(50,000 表示 db2 不可用)
或者端口有问题(防火墙阻塞、端口号错误……)
检查您正在使用的库import com.ibm.db2.jcc.*;
并设置正确的端口 setPortNumber(port)。在命令行中使用Telnet 51.37.93.117 50000
来检查端口的可用性,如果是空白屏幕则端口处于打开状态,否则端口可能处于关闭/忙碌状态。
使用此link here 参考Data Source Explorer
中您可以为db2 配置采取的步骤,了解如何停止、设置、更新和启动命令以重新连接或创建数据库。
【讨论】:
以上是关于无法在eclipse中建立数据库连接的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse建立Django项目连接MySQL数据库报错,如图,请问该怎么解决?
Eclipse IDE for Java Developers(4.10.0)建立与SQL Server 2008数据库的连接