DolphinScheduler 3.1.9 单机版重启后,项目、流程定义等数据全部丢失

问题描述

DolphinScheduler 3.1.9 单机版(standalone)重启后,项目、流程定义等数据全部丢失。

问题原因

默认配置使用 H2 内存数据库,数据仅保存在内存中,重启后失效。

sql:
  init:
    schema-locations: classpath:sql/dolphinscheduler_h2.sql
datasource:
  driver-class-name: org.h2.Driver
  url: jdbc:h2:mem:dolphinscheduler;MODE=MySQL;DB_CLOSE_DELAY=-1;DATABASE_TO_LOWER=true
  username: sa
  password: ""

解决方法

1. 修改数据库配置

编辑standalone-server/conf/application.yaml,将 H2 配置替换为 MySQL,并修改数据库:

注意:

  1. 将其中url修改成自己的 mysql 主机名,数据库名(不建议修改),其余不变。
  2. username和password改为自己mysql的用户名和密码。
  3. schema-locations后其实h2修改为了mysql,这里直接粘贴就行。
  4. 这里采用SnakeYAML解析yaml文件,所以一定要保证缩进正确,最好每次改动备份文件前都备份配置文件。
sql:
  init:
    schema-locations: classpath:sql/dolphinscheduler_mysql.sql
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
    username: root
    password: "123456"

2. 创建 MySQL 数据库

执行以下 SQL 创建数据库(确保字符集正确):

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3. 添加 MySQL 驱动

mysql-connector-java-*.jar放入以下目录:

  • tools/libs/
  • standalone-server/libs/

4. 初始化数据库

执行升级脚本,将表结构导入 MySQL:

bash tools/bin/upgrade-schema.sh mysql
  • 注意事项
    • 确保 MySQL 服务已启动且网络可达。
      配置中的 mysql库所在主机名,username 和 password 需替换为实际值。
    • 完成上述步骤后,重启 DolphinScheduler 服务即可持久化数据。

如果对你有帮助,请点个赞或者关注,谢谢。

原文链接:https://blog.csdn.net/oyLibertad/article/details/151725301)

posted @ 2025-10-15 18:48  海豚调度  阅读(10)  评论(0)    收藏  举报