无法连接到hsqldb数据库

时间:2012-05-17 20:16:18

标签: java database hsqldb

我使用以下命令使用windows命令创建数据库并连接到它但我收到java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind错误。

用于创建名为 xdb 的数据库并连接到它的命令:

java -cp ./lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb

完成错误:

[Server@83cc67]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@83cc67]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@83cc67]: Startup sequence initiated from main() method
[Server@83cc67]: Loaded properties from [C:\Home\hsqldb\server.properties]
[Server@83cc67]: Initiating startup sequence...
[Server@83cc67]: [Thread[HSQLDB Server @83cc67,5,main]]: run()/openServerSocket(
):
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
        at java.net.ServerSocket.bind(ServerSocket.java:319)
        at java.net.ServerSocket.<init>(ServerSocket.java:185)
        at java.net.ServerSocket.<init>(ServerSocket.java:97)
        at org.hsqldb.HsqlSocketFactory.createServerSocket(Unknown Source)
        at org.hsqldb.Server.openServerSocket(Unknown Source)
        at org.hsqldb.Server.run(Unknown Source)
        at org.hsqldb.Server.access$000(Unknown Source)
        at org.hsqldb.Server$ServerThread.run(Unknown Source)
[Server@83cc67]: Initiating shutdown sequence...
[Server@83cc67]: Shutdown sequence completed in 6 ms.
[Server@83cc67]: 2012-05-18 01:31:59.184 SHUTDOWN : System.exit() is called next

有人可以帮我理解为什么我会收到此错误以及如何解决?

由于

2 个答案:

答案 0 :(得分:4)

hsqldb的默认端口是9001

运行netstat -an检查端口9001上是否有什么东西是LISTENING

netstat -an | grep LISTENING检查所有侦听传入连接的服务器

netstat -an | grep 9001检查特定的端口号。

如果已经存在某些内容,那么您尝试启动的新hsqldb将无法bind a socket到9001端口。

在Windows 7上,您可以运行TCPView以查看当前正在“过度拥挤”端口上侦听的进程。然后是决定终止使用9001或重新配置hsqldb并使用不同(未使用)端口的客户端应用程序的进程。

可以使用--port XXXX更改hsqldb侦听的端口,其中XXXX是新端口号。

同样来自java -cp ./lib/hsqldb.jar org.hsqldb.Server --help输出......

The server looks for a 'server.properties' file in the current directory and loads properties from it if it exists. Command line options override those loaded from the 'server.properties' file.

此错误还有其他可能原因,因此了解hsqldb正在运行的操作系统会很有用。

无法绑定到套接字是一个可能会影响任何服务器应用程序的问题,因此您可以查看为其他返回此错误的服务器软件提供的答案,例如此处提出的有关JBOSS的问题。

java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (JBOSS)

答案 1 :(得分:0)

看起来你试图绑定到端口0并且它不存在。尝试配置不同的端口