java - 无法连接到 hsqldb 数据库

标签 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

有人可以帮助我理解为什么会出现此错误以及如何解决它吗?

谢谢

最佳答案

hsqldb的默认端口是9001

运行netstat -an检查端口9001上是否有东西正在监听

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 正在运行的操作系统会很有用。

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

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

关于java - 无法连接到 hsqldb 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10642882/

相关文章:

java - itext:PdfPCell 中的嵌套列表显示不完整

java - 使用 BeanFactoryPostProcessor 创建 bean

java - Android,Firebase - 尝试检索多个子节点时,数据库仅将单个子节点作为字符串返回

sql - 如何使用group by编写sql查询

ios - Realm ,-[__NSCFString timeIntervalSince1970] : unrecognized selector sent to instance

java - 从数据库中搜索java servlet

java - 启动 Eclipse RCP 应用程序时小部件不显示

java - 当每个请求可以到达多个服务器时,如何维护用户凭据

maven - HSQL 单元测试——如何创建多个内存模式?

java - 在服务器模式下在 Tomee 上运行 Hypersonic db