有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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:

enter image description here

如果有任何帮助,我将不胜感激,我还尝试在maven依赖项和h2运行版本中降级到1.4.190版本-h2-1.4.190


共 (2) 个答案

  1. # 1 楼答案

    数据库文件也可能已损坏 或者数据库结构被弄乱了,现在无法读取

    找出哪里出了问题有点困难,但您可以创建新的数据库并使用它。 不需要更改H2版本

    在我的例子中,我是这样使用基于文件的数据库的

    C:/Users/ashish/data/code_base/H2/H2
    

    所以我只是更改了文件名,再次创建新的数据库,如下所示 它成功了

    C:/Users/ashish/data/code_base/H2/NEW_H2
    
  2. # 2 楼答案

    通过下载另一个版本1.4.199和最新的稳定版本解决了这一问题。看起来是1.4.200的某种bug

    正如本文github中提到的。com/h2database/h2database/issues/2078