java - Linux 重启后 Tomcat 中的 HyperSQL 数据库被删除

标签 java tomcat centos7 hypersql

我正在使用 HyperSQL 作为我的 Tomcat 应用程序的数据库。数据库服务器从我的应用程序运行,文件位置在 webapps/myapp-folder 中。

问题是,在 Linux (Centos 7) 重启后,数据库以某种方式发生冲突并重新创建数据库(所有数据都被删除)。如果我只重启 Tomcat,一切正常。

我的 tomcat.service:

[Unit]
Description=Tomcat 8.5 servlet container
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

数据库文件夹有完整的创建和删除权限,组和所有者是tomcat用户。

HSQL 服务器已启动,当我的应用程序启动并使用 Hibernate 处理数据库时:

    Properties properties = new Properties();
    properties.setProperty(Environment.DRIVER, "org.hsqldb.jdbcDriver");
    properties.setProperty(Environment.URL, "jdbc:hsqldb:hsql://localhost:9001/my_repository"); 
    properties.setProperty(Environment.USER, xxx);
    properties.setProperty(Environment.PASS, yyy);
    properties.setProperty(Environment.DIALECT, "org.hibernate.dialect.HSQLDialect");
    properties.setProperty(Environment.HBM2DDL_AUTO, "update");

有什么问题吗?为什么电脑重启后数据总是被删除?

感谢您的回答。

最佳答案

尝试更改属性“HBM2DDL_AUTO”以验证,甚至删除它。
此属性负责“自动模式生成”。
您可以找到其他值或信息 here

关于java - Linux 重启后 Tomcat 中的 HyperSQL 数据库被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486957/

相关文章:

java - 使用 JDBC 驱动程序从 java 声明并使用 t-sql 变量

java - Tomcat 和 Spring MVC - 未找到具有 URI 的 HTTP 请求的映射

python - "easy_install setuptools"是否正在将 setuptools 安装到不同的站点包中?

linux - SSL 的 Nginx 配置

java - Java 中的范围简化

java - 如何在idea插件开发中创建PsiSwitchLabelStatement?

java - 使用泛型链接任务

tomcat - Atomikos、Tomcat、JTA java.lang.ClassCastException

tomcat - 在 URL 上隐藏 8080 并将流量从 80 重定向到 8080

cron - 无法使 CRON 为 CentOS 7 上的用户工作