【生产实践】Dolphinscheduler集群部署后Web控制台不能登录问题解决
- 太长不看版
- 问题描述:
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
- 排查过程:
- 首先网络、防火墙、服务可用性等常规巡检项,确保无误
- 检查数据库授权,从服务器使用mysql命令登录数据库正常,排除数据库问题
- 检查数据库连接件是否和数据库版本对应,跟其他生产环境使用相同连接件,排除连接件问题
- 检查启动过程日志,收集报错信息
- 检查配置文件,确保手动后设置的值正确可用
- 解决关键点:
- <安装目录>/conf/datasource.properties 记录数据库连接信息
我的问题是集群部署后安装节点的数据库密码修改对了,但集群其他节点的配置文件中这个密码的地方没有更新,将这个数据库密码设置对了,重启集群就好了。spring.datasource.username=root spring.datasource.password=<你的密码> ##就这地方出问题了
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'.
可能原因分析
- MySQL 认证插件不兼容:MySQL 8.0 默认使用
caching_sha2_password
认证插件,而旧版 JDBC 驱动可能只支持mysql_native_password
。 - JDBC 驱动版本不匹配:使用的 MySQL JDBC 驱动版本过低,不支持当前 MySQL 服务器版本。
- 数据库连接参数配置错误:
datasource.properties
中的 URL、用户名或密码配置有误。 - 主机名解析异常:DolphinScheduler 服务器通过不同的主机名或 IP 访问 MySQL,导致权限验证失败。
- 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;
2. 检查并更新 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
- MySQL 5.x:推荐使用
-
替换驱动文件:
将下载的 JAR 文件复制到 DolphinScheduler 的lib/
目录下,并删除旧版本驱动。
3. 检查数据库连接配置
编辑 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
:指定时区,避免时间戳转换问题
4. 验证网络连通性
从 DolphinScheduler 服务器测试与 MySQL 服务器的网络连接:
ping <数据库IP>
telnet <数据库IP> 3306
5. 检查 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;
6. 临时禁用防火墙或安全组
若存在防火墙,临时关闭以验证是否为网络限制导致:
# 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
(根据实际时区调整)。
验证修复结果
- 重启 DolphinScheduler 服务:
sh bin/stop-all.sh sh bin/start-all.sh
- 重新执行数据库初始化脚本:
sh script/create-dolphinscheduler.sh
预防措施
- 在安装前,确保 MySQL 版本与 DolphinScheduler 官方文档推荐版本兼容。
- 使用专用数据库用户(而非
root
)进行应用访问,并限制其权限范围。 - 定期备份数据库,避免数据丢失。
- 生产环境建议启用 SSL 加密,并配置更严格的网络访问策略。
参考文档
- DolphinScheduler 官方安装文档
- MySQL Connector/J 下载
- MySQL 用户权限管理
相关文章:
【生产实践】Dolphinscheduler集群部署后Web控制台不能登录问题解决
太长不看版 问题描述: Dolphinscheduler按生产手册使用一键脚本集群部署后,控制台登录页面可以打开,但使用默认账户怎么都登录不进去,尝试在数据库中清理登录用户字段,发现数据库中并没有相关用户字段,而后…...
【东枫科技】使用LabVIEW进行深度学习开发
文章目录 DeepLTK LabVIEW深度学习工具包LabVIEW中的深度神经网络**功能与特性****功能亮点:** **支持的网络层****支持的网络架构****参考示例** 授权售价 DeepLTK LabVIEW深度学习工具包 LabVIEW中的深度神经网络 功能亮点: 在 LabVIEW 中创建、配置…...
PYTHON训练营DAY25
BUG与报错 一、try else try:# 可能会引发异常的代码 except ExceptionType: # 最好指定具体的异常类型,例如 ZeroDivisionError, FileNotFoundError# 当 try 块中发生 ExceptionType 类型的异常时执行的代码 except: # 不推荐:捕获所有类型的异常&…...

Axure :基于中继器的列表删除 、 列表编辑
文章目录 I 列表删除思路操作说明II 列表编辑功能思路修改按钮的交互操作说明编辑页面的保存按钮交互设置取消标记I 列表删除 思路 中继器删除行交互事件; 操作说明 在操作列中添加删除标签,同步添加鼠标点击交互事件 在交互事件中插入中继器删除行动作 多选删除,勾选已标…...

基于GPUGEEK 平台进行深度学习
一、平台简介 GPUGEEK 是一个专注于提供 GPU 算力租赁服务的平台,在人工智能与深度学习领域为用户搭建起便捷的算力桥梁。它整合了丰富多样的 GPU 资源,涵盖 RTX - 4090、RTX - 3090、A100 - PCIE 等多种型号,满足不同用户在模型训练、数据处…...

【多模态】IMAGEBIND论文阅读
every blog every motto: Although the world is full of suffering, it is full also of the overcoming of it 0. 前言 IMAGEBIND 多模态论文梗概 IMAGEBIND是一种夸模态的神经网络,以图片为中心,联合六中模态的网络(图片、文…...

LeetCode LCR 007. 三数之和 (Java)
题目描述 给定一个整数数组 nums,判断是否存在三个元素 a, b, c,使得 a b c 0?找出所有满足条件且不重复的三元组。 解题思路 核心方法:排序 双指针 排序:首先将数组排序,便于后续去重和双指针操作。…...

VTK|类似CloudCompare的比例尺实现1-源码分析
文章目录 CloudCompare源码分析void ccGLWindowInterface::drawScale(const ccColor::Rgbub& color)🧩 总体功能🧠 函数逐步解析✅ 1. 断言只在正交模式下使用✅ 2. 计算显示的实际长度✅ 3. 字体和图形区域准备✅ 4. 计算比例尺图形的绘制位置✅ 5.…...

电子电器架构 --- 车载以太网拓扑
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

phpstorm2024.3 设置中文
要在 PhpStorm 2024.3 中设置中文界面,你可以按照以下步骤进行操作。请注意,PhpStorm 2024.3 版本可能已经包括了中文语言包,但如果你使用的是较早的版本,可能需要下载额外的语言包。 方法一:直接在设置中切换&#x…...
Spring Boot 的 CommandLineRunner
Spring Boot 的 CommandLineRunner 是用于在应用程序启动后执行初始化逻辑的核心接口,以下为综合说明: 一、定义与作用 CommandLineRunner 是 Spring Boot 提供的函数式接口,开发者通过实现其 run(String... args) 方法,可在应用…...

vxe-table 同时实现合并单元格与任意列展开行
前一段时间有一个需求,要求既要合并单元格,又要实现树状图的效果,但是展开节点tree-node 可以放在非第一列的任意位置,Vxe-table可以实现如下是效果图: 大家可以一起交流学习! ~重点注意事项:…...

ArcGIS Desktop使用入门(二)常用工具条——图形
系列文章目录 ArcGIS Desktop使用入门(一)软件初认识 ArcGIS Desktop使用入门(二)常用工具条——标准工具 ArcGIS Desktop使用入门(二)常用工具条——编辑器 ArcGIS Desktop使用入门(二&#x…...
Java SpringMVC 和 MyBatis 整合关键配置详解
目录 一、数据源配置二、MyBatis 工厂配置三、Mapper 扫描配置四、SpringMVC 配置五、整合示例实体类Mapper 接口Mapper XML 文件Service 类控制器JSP 页面六、总结在 Java Web 开发中,SpringMVC 和 MyBatis 是两个常用框架。SpringMVC 负责 Web 层的请求处理和视图渲染,MyBa…...
【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
文章目录 🎯 观察者模式(Observer Pattern)深度解析一、模式本质与核心价值二、经典UML结构三、Unity实战代码(玩家血量监控系统)1. 定义观察者接口与主题基类2. 实现具体主题(玩家血量)3. 实现…...

神经网络语言模型(前馈神经网络语言模型)
神经网络语言模型 什么是神经网络?神经网络的基本结构是什么?输入层隐藏层输出层 神经网络为什么能解决问题?通用近似定理为什么需要权重和偏置?为什么需要激活函数?权重是如何确定的?1. 穷举2. 反向传播主…...
基于Transformer的多资产收益预测模型实战(附PyTorch实现与避坑指南)
基于Transformer的多资产收益预测模型实战(附PyTorch模型训练及可视化完整代码) 一、项目背景与目标 在量化投资领域,利用时间序列数据预测资产收益是核心任务之一。传统方法如LSTM难以捕捉资产间的复杂依赖关系,而Transformer架构通过自注意力机制能有效建模多资产间的联…...

CUDA编程——性能优化基本技巧
本文主要介绍下面三种技巧: 使用 __restrict__ 让编译器放心地优化指针访存想办法让同一个 Warp 中的线程的访存 Pattern 尽可能连续,以利用 Memory coalescing使用 Shared memory 0. 弄清Kernael函数是Compute-bound 还是 Memory-bound 先摆出一个知…...

道通EVO MAX系列无人机-支持二次开发
道通EVO MAX系列无人机-支持二次开发 EVO Max 系列采用Autel Autonomy自主飞行技术,实现复杂环境下的全局路径规划、3D场景重建、自主绕障和返航;高精度视觉导航能力,使其在信号干扰强、信号遮挡、信号弱等复杂环境下,依然获得高精…...
Node.js中MongoDB连接的进阶模块化封装
Node.js中MongoDB连接的进阶模块化封装 📑 目录 为什么需要模块化数据库连接现代Node.js连接MongoDB的最佳实践四层架构下的模块化封装 1. 配置层(Config Layer)2. 连接层(Connection Layer)3. 模型层(Mo…...
Go基于plugin的热更新初体验
背景 对于一个部署在生产环境的项目来说,我们希望当代码出现bug的时候,可以不用重启进程而达到动态修改代码的目的—— 这就是代码热部署! 使用java做游戏服务器,最大的好处是,当代码出现bug,可以直接热…...

计算机网络-MPLS LDP基础实验配置
前面我们学习了LDP的会话建立、标签发布与交换、LDP的工作原理,今天通过一个基础实验来加深记忆。 一、LDP基础实验 实验拓扑: 1、IGP使用OSPF进行通告,使用Lookback接口作为LSR ID,LDP ID自动生成。 2、实验目的:使…...

HPE ProLiant DL360 Gen11 服务器,配置 RAID 5 教程!
今天的任务,是帮客户的一台HPE ProLiant DL360 Gen11 服务器,配置RAID 5。依然是按照我的个人传统习惯,顺便做一个教程,分享给有需要的粉丝们。如果你在实际操作中,遇到了什么问题,欢迎在评论区留言&#x…...

SARIMA-LSTM融合模型对太阳黑子数量预测分析|附智能体数据代码
全文智能体链接:https://tecdat.cn/?p41969 分析师:Peng Fan 本研究以太阳黑子活动数据为研究对象,旨在帮助客户探索其未来走势并提供预测分析。首先,通过对数据的清洗和处理,包括离群值的识别与处理以及时间序列的建…...

C# WinForm DataGridView 非常频繁地更新或重新绘制慢问题及解决
非常频繁地更新 DataGridView问题描述: 在 C# 中无法在合理的时间内刷新我的 DataGridView ,我每秒通过网络发送 20 个数据包,获取数据。我想解析这些数据并将其放入 DataGridView 中。我还想调整 DataGridView 的更新间隔,从 0.1…...

【数据结构】红黑树(C++)
目录 一、红黑树的概念 二、红黑树的性质 三、红黑树结点定义 四、红黑树的操作 1. 插入操作 1.1 插入过程 1.2 调整过程 1.2.1 叔叔节点存在且为红色 1.2.2 叔叔节点存在且为黑色 1.2.3 叔叔节点不存在 2. 查找操作 2.1 查找逻辑 2.2 算法流程图 2.3 使用示例 …...
验证码与登录过程逻辑学习总结
目录 前言 一、验证码与登录 二、使用步骤 1.先apipost测试一波 2.先搞验证码 3.跨域问题 4.后端走起 总结 前言 近期要做一个比较完整的demo,需要自己做一个前端登录页面,不过api接口都是现成的,一开始以为过程会很easy,…...

Android Framework学习五:APP启动过程原理及速度优化
文章目录 APP启动优化概述APP启动流程点击图片启动APP的过程启动触发Zygote 与应用进程创建Zygote进程的创建应用进程初始化 ApplicationActivity 启动与显示 优化启动时黑白屏现象可优化的阶段Application阶段相关优化 Activity阶段数据加载阶段 Framework学习系列文章 APP启动…...

Meta的AIGC视频生成模型——Emu Video
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。 🌺优质专栏回顾&am…...

Axure难点解决分享:统计分析页面引入Echarts示例动态效果
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:统计分析页面引入Echarts示例动态效果 主要内容:echart示例引入、大小调整、数据导入 应用场景:统计分析页面…...