我用自己的程序创建了数据库,它显示为mydatabase.mv.db
文件。如何访问H2数据库的* .mv.db文件?
但是,当我试图访问与DbVisualizer
相同的数据库,显然相同的参数,它创建了两个文件mydatabase.lock.db
和celebrity.h2.db
,并没有看到在程序中创建的表。
什么是不兼容?
UPDATE
两种设置是如下:
我用自己的程序创建了数据库,它显示为mydatabase.mv.db
文件。如何访问H2数据库的* .mv.db文件?
但是,当我试图访问与DbVisualizer
相同的数据库,显然相同的参数,它创建了两个文件mydatabase.lock.db
和celebrity.h2.db
,并没有看到在程序中创建的表。
什么是不兼容?
UPDATE
两种设置是如下:
在H2 1.3.x版,数据库文件<databaseName>.h2.db
是默认的。 (使用存储引擎“PageStore”)。
在H2版本1.4.x中,数据库文件<databaseName>.mv.db
是默认值。 (使用存储引擎“MVStore”)。 MVStore现在仍在测试阶段(2014年11月)。但是,您可以通过将;mv_store=false
附加到数据库URL来禁用MVStore。
我可以确认'1.4.190'版本的h2将创建一个'
我认为你使用的是旧版本1.4.190,或者数据库已经存在。你可以通过运行'select * from information_schema.settings'来检查'%BUILD%'的名字吗?在版本1.4.190中,结果('CREATE_BUILD'是用于创建数据库的版本,'info.BUILD_ID'是当前版本)会得到'190'两倍。顺便说它是'MV_STORE'而不是'MC_STORE'。 – 2015-12-04 08:22:47
对不起,我发现它是由之前创建的数据库引起的(没有MVCC = TRUE)。如果'
接受的答案是几年来老,因为其他人可能会寻找一个更“当前”的解决方案...
得到它只是工作更新DBVizualizer使用H2 JDBC驱动程序。基本上从http://www.h2database.com/html/download.html下载“Platform-Independent Zip”,然后将h2/bin/h2-X.X.X.jar
文件复制到~/.dbvis/jdbc/
,然后重新启动DBVizualizer,以便它可以获取更新的驱动程序。
此外,在DBVizualizer中设置数据库文件名时,请确保从文件名中删除.mv.db
。
什么是您的程序和'DbVisualizer'使用的连接细节? – MadProgrammer 2014-11-24 00:53:08
尝试并确保路径使用'/'而不是'''(在'DbVisualizer'中) – MadProgrammer 2014-11-24 01:00:37
为方便起见,追加'; IFEXISTS = TRUE'以避免创建虚假的数据库文件,正如建议的[here](http:/ /stackoverflow.com/a/2443685/230513)。 – trashgod 2014-11-25 10:33:58