问题描述
DolphinScheduler 3.1.9 单机版(standalone)重启后,项目、流程定义等数据全部丢失。
问题原因
默认配置使用 H2 内存数据库,数据仅保存在内存中,重启后失效。
sql:init:schema-locations: classpath:sql/dolphinscheduler_h2.sql
datasource:driver-class-name: org.h2.Driverurl: jdbc:h2:mem:dolphinscheduler;MODE=MySQL;DB_CLOSE_DELAY=-1;DATABASE_TO_LOWER=trueusername: sapassword: ""
解决方法
1. 修改数据库配置
编辑standalone-server/conf/application.yaml
,将 H2 配置替换为 MySQL,并修改数据库:
注意:
- 将其中url修改成自己的 mysql 主机名,数据库名(不建议修改),其余不变。
- username和password改为自己mysql的用户名和密码。
schema-locations
后其实h2修改为了mysql,这里直接粘贴就行。- 这里采用SnakeYAML解析yaml文件,所以一定要保证缩进正确,最好每次改动备份文件前都备份配置文件。
sql:init:schema-locations: classpath:sql/dolphinscheduler_mysql.sqldatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghaiusername: rootpassword: "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 服务即可持久化数据。
- 确保 MySQL 服务已启动且网络可达。
如果对你有帮助,请点个赞或者关注,谢谢。
原文链接:https://blog.csdn.net/oyLibertad/article/details/151725301)