java - 具有基于文件的数据库的 h2 集群

标签 java database cluster-computing h2

我已经设置了 h2 集群,但无法通过控制台或使用数据源进行连接,我得到的只是:

IO Exception: "java.io.IOException: The filename, directory name, or volume label syntax is incorrect"; "E:/baseDirDefinedInServerConnection/myDB,localhost:1112/myDB" [90031-176] 90031/90031 (Help)

我已经配置了 2 个服务器:

java -cp h2-1.3.167.jar org.h2.tools.Server -tcp -tcpPort 1111 -tcpAllowOthers -baseDir E:\myBaseDir 
at tcp://myIp:1111 (others can connect)

java -cp h2-1.3.167.jar org.h2.tools.Server -tcp -tcpPort 1112 -tcpAllowOthers -baseDir E:\myBaseDir\server
at tcp://myIp:1112 (others can connect)

所以你会看到我在一个目录中有一个数据库(已创建),在另一个目录中有另一个数据库。两者均已启动并正在运行。

我已经运行了集群工具:

java -cp h2-1.3.167.jar org.h2.tools.CreateCluster -urlSource jdbc:h2:tcp://localhost:1111/myDB -urlTarget jdbc:h2
:tcp://localhost:1112/myDB -user username -password pass -serverList localhost:1111,localhost:1112

一切看起来都不错。如果我尝试在没有集群列表的情况下通过控制台进行连接,我会收到此消息,这证明我们处于集群模式,这很好:

Clustering error - database currently runs in cluster mode, server list: 'localhost:1111,localhost:1112'" [

我已经检查了目录的权限,所有目录都具有读/写访问权限。 是的,这是一台 Windows 机器。 使用H2版本: bundle 供应商:H2 Group 捆绑版本:1.3.167

你知道我可能做错了什么吗? 感谢您的阅读。

最佳答案

我猜你已经发现应该这样连接
jdbc:h2:tcp://localhost:1111,localhost:1112/myDB

关于java - 具有基于文件的数据库的 h2 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885434/

相关文章:

java - Android:检查互联网连接会挂起 UI

Java,Base64 : How to write a Base64OutputStream class using Decorator Pattern

database - quartz 调度程序不断打开和关闭数据库连接

linux - 如何列出集群上给定帐户可用的所有程序?

java - spark standalone cluster slave无法将slave连接到master

shell - 是否有可以跨Internet连接工作的类UNIX集群操作系统?

java - 覆盖等于不工作

java - SocketChannel read() 行为 - 短读取

php - PDO::prepare 和 PDO::quote 完全安全吗?

python - mysql错误: ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)