暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【生产实践】Dolphinscheduler集群部署后Web控制台不能登录的问题解决了!

海豚调度 2025-06-10
134

点击蓝字,关注我们


1

问题描述

Dolphinscheduler按生产手册使用一键脚本集群部署后,控制台登录页面可以打开,但使用默认账户怎么都登录不进去,尝试在数据库中清理登录用户字段,发现数据库中并没有相关用户字段,而后使用Dolphinscheduler初始化脚本建库时发现连接数据库失败。

报错信息:

    Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
16:16:08.294 [main] ERROR com.alibaba.druid.pool.DruidDataSource - init datasource error, url: jdbc:mysql://<数据库IP>:3306/ifrsdb?characterEncoding=UTF-8&allowMultiQueries=true
java.sql.SQLException: Access denied for user 'root'@'<hostname>' (using password: YES)
...
16:16:08.300 [main] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
16:16:08.300 [main] ERROR org.apache.dolphinscheduler.dao.upgrade.UpgradeDao - Access denied for user 'root'@'<hostname>' (using password: YES)
java.sql.SQLException: Access denied for user 'root'@'<hostname>' (using password: YES)
...
16:16:08.301 [main] ERROR org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler - create DolphinScheduler failed


2

排查过程


  • 首先网络、防火墙、服务可用性等常规巡检项,确保无误
  • 检查数据库授权,从服务器使用mysql命令登录数据库正常,排除数据库问题
  • 检查数据库连接件是否和数据库版本对应,跟其他生产环境使用相同连接件,排除连接件问题
  • 检查启动过程日志,收集报错信息
  • 检查配置文件,确保手动后设置的值正确可用


3

解决关键点

<安装目录>/conf/datasource.properties 记录数据库连接信息

spring.datasource.username=root
spring.datasource.password=<你的密码>  ##就这地方出问题了

我的问题是集群部署后安装节点的数据库密码修改对了,但集群其他节点的配置文件中这个密码的地方没有更新,将这个数据库密码设置对了,重启集群就好了。


4

DolphinScheduler安装时数据库

认证失败问题排查备忘录

问题描述

在安装 DolphinScheduler 时,执行数据库初始化脚本(如 create-dolphinscheduler.sh)出现以下错误:

ERROR org.apache.dolphinscheduler.dao.upgrade.UpgradeDao - Access denied for user 'root'@'<hostname>' (using password: YES)
java.sql.SQLException: Access denied for user 'root'@'<hostname>' (using password: YES)

尽管已通过 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
 授权 root 用户从任意主机访问,但错误依旧存在。同时,日志中出现 MySQL 驱动过时警告:

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.

可能原因分析

  1. MySQL 认证插件不兼容:MySQL 8.0 默认使用 caching_sha2_password 认证插件,而旧版 JDBC 驱动可能只支持 mysql_native_password。
  2. JDBC 驱动版本不匹配:使用的 MySQL JDBC 驱动版本过低,不支持当前 MySQL 服务器版本。
  3. 数据库连接参数配置错误:datasource.properties 中的 URL、用户名或密码配置有误。
  4. 主机名解析异常:DolphinScheduler 服务器通过不同的主机名或 IP 访问 MySQL,导致权限验证失败。
  5. SSL 配置冲突:MySQL 服务器强制要求 SSL 连接,但连接 URL 中未配置正确的 SSL 参数。

排查步骤

  1. 验证 MySQL 用户权限
    确认 root 用户确实拥有从任意主机访问的权限:
-- 查看 root 用户权限
SHOW GRANTS FOR 'root'@'%';

-- 若权限不足,重新授权(需替换为实际密码)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

  1. 检查并更新 MySQL JDBC 驱动
    确保使用的 JDBC 驱动版本与 MySQL 服务器兼容:
  • 查看 MySQL 版本:
mysql -V

  • 下载对应版本的驱动:
MySQL 5.x:推荐使用 mysql-connector-java-5.1.47.jar
MySQL 8.x:必须使用 mysql-connector-java-8.0.x.jar

  • 替换驱动文件:
    将下载的 JAR 文件复制到 DolphinScheduler 的 lib/ 目录下,并删除旧版本驱动。
  1. 检查数据库连接配置
    编辑 conf/datasource.properties
    (DolphinScheduler 2.x)或 conf/common.properties(DolphinScheduler 3.x),确保以下参数正确:
spring.datasource.url=jdbc:mysql://<数据库IP>:3306/ifrsdb?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=<你的密码>

关键参数说明:

  • useSSL=false:禁用 SSL 连接(测试环境)
  • allowPublicKeyRetrieval=true:允许客户端获取公钥(MySQL 8.x 必需)
  • serverTimezone:指定时区,避免时间戳转换问题
  1. 验证网络连通性
    从 DolphinScheduler 服务器测试与 MySQL 服务器的网络连接:
ping <数据库IP>
telnet <数据库IP> 3306

  1. 检查 MySQL 认证插件
    若使用 MySQL 8.x,确认 root 用户的认证插件为 mysql_native_password:
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

-- 若插件为 caching_sha2_password,修改为 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

  1. 临时禁用防火墙或安全组
    若存在防火墙,临时关闭以验证是否为网络限制导致:
# CentOS/RHEL
systemctl stop firewalld

# Ubuntu/Debian
ufw disable

注意:完成测试后务必重新启用防火墙,并配置允许访问的规则。

常见错误处理

  • 错误:Loading class 'com.mysql.jdbc.Driver'
    • 原因:使用了过时的驱动类名。
    • 解决:升级到 MySQL Connector/J 8.0+,并确保 lib/ 目录中没有旧版驱动。
  • 错误:Public Key Retrieval is not allowed
    • 原因:MySQL 8.x 默认需要公钥检索,但连接 URL 未配置。
    • 解决:在 URL 中添加 allowPublicKeyRetrieval=true。
  • 错误:The server time zone value 'XXX' is unrecognized
    • 原因:时区配置不正确。
    • 解决:在 URL 中添加 serverTimezone=Asia/Shanghai(根据实际时区调整)。

验证修复结果

  1. 重启 DolphinScheduler 服务:
sh bin/stop-all.sh
sh bin/start-all.sh

重新执行数据库初始化脚本:

sh script/create-dolphinscheduler.sh

预防措施

  1. 在安装前,确保 MySQL 版本与 DolphinScheduler 官方文档推荐版本兼容。
  2. 使用专用数据库用户(而非 root)进行应用访问,并限制其权限范围。
  3. 定期备份数据库,避免数据丢失。
  4. 生产环境建议启用 SSL 加密,并配置更严格的网络访问策略。

参考文档

  • DolphinScheduler 官方安装文档
  • MySQL Connector/J 下载
  • MySQL 用户权限管理

原文链接:https://blog.csdn.net/timonium/article/details/147952568





用户案例



网易邮箱 每日互动 惠生工程  作业帮 
博世智驾 蔚来汽车 长城汽车集度长安汽车
思科网讯食行生鲜联通医疗联想
新网银行唯品富邦消费金融 
自如有赞伊利当贝大数据
珍岛集团传智教育Bigo
YY直播  三合一太美医疗
Cisco Webex兴业证券




迁移实战



Azkaban   Ooize(当贝迁移案例)
Airflow (有赞迁移案例)
Air2phin(迁移工具)
Airflow迁移实践



发版消息




Apache DolphinScheduler 3.2.2版本正式发布!
Apache DolphinScheduler 3.2.1 版本发布:增强功能与安全性的全面升级
Apache DolphinScheduler 3.3.0 Alpha发布,功能增强与性能优化大升级!




加入社区



关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

📂非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

👩‍💻代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler


你的好友秀秀子拍了拍你

并请你帮她点一下“分享”


文章转载自海豚调度,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论