H2数据库抛出一般错误:“java.lang.IllegalStateException:无法读取位置2199023614787处的页面
我正在开发一个使用H2数据库的应用程序。过去使用这项技术没有任何问题,但当下载h2数据库的新副本并运行jar时,我无法使用默认设置登录!我正在运行h2-1.4.200.jar
,并受到以下欢迎:
General error: "java.lang.IllegalStateException: Unable to read the page at position 2199023614787 [1.4.200/6]" [50000-200] HY000/50000 (Help)
我试图运行默认设置只是为了连接到数据库,但似乎没有任何效果。我尝试了以下内容,但没有成功,还尝试了github上的其他一些来源:
Embedded H2 Database “NonTransientError: Unable to read the page at position” error?
我在项目中使用以下依赖项:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
并下载了相同版本的相应H2数据库-1.4.200
过去是否有人在H2数据库中遇到过类似的问题?我收到的错误出现在以下图像中:
H2数据库控制台错误1:
如果有任何帮助,我将不胜感激,我还尝试在maven依赖项和h2运行版本中降级到1.4.190版本-h2-1.4.190
# 1 楼答案
数据库文件也可能已损坏 或者数据库结构被弄乱了,现在无法读取
找出哪里出了问题有点困难,但您可以创建新的数据库并使用它。 不需要更改H2版本
在我的例子中,我是这样使用基于文件的数据库的
所以我只是更改了文件名,再次创建新的数据库,如下所示 它成功了
# 2 楼答案
通过下载另一个版本
1.4.199
和最新的稳定版本解决了这一问题。看起来是1.4.200的某种bug正如本文github中提到的。com/h2database/h2database/issues/2078