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

问题描述
Dolphinscheduler 按生产手册使用一键脚本集群部署后,控制台登录页面可以打开,但使用默认账户怎么都登录不进去,尝试在数据库中清理登录用户字段,发现数据库中并没有相关用户字段,而后使用 Dolphinscheduler 初始化脚本建库时发现连接数据库失败。
报错信息:
排查过程
首先网络、防火墙、服务可用性等常规巡检项,确保无误
检查数据库授权,从服务器使用 mysql 命令登录数据库正常,排除数据库问题
检查数据库连接件是否和数据库版本对应,跟其他生产环境使用相同连接件,排除连接件问题
检查启动过程日志,收集报错信息
检查配置文件,确保手动后设置的值正确可用
解决关键点
<安装目录>/conf/datasource.properties 记录数据库连接信息
我的问题是集群部署后安装节点的数据库密码修改对了,但集群其他节点的配置文件中这个密码的地方没有更新,将这个数据库密码设置对了,重启集群就好了。
DolphinScheduler 安装时数据库认证失败问题排查备忘录
问题描述
在安装 DolphinScheduler 时,执行数据库初始化脚本(如 create-dolphinscheduler.sh)出现以下错误:
尽管已通过 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
授权 root 用户从任意主机访问,但错误依旧存在。同时,日志中出现 MySQL 驱动过时警告:
可能原因分析
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 参数。
排查步骤
验证 MySQL 用户权限确认 root 用户确实拥有从任意主机访问的权限:
检查并更新 MySQL JDBC 驱动确保使用的 JDBC 驱动版本与 MySQL 服务器兼容:
查看 MySQL 版本:
下载对应版本的驱动:
替换驱动文件:将下载的 JAR 文件复制到 DolphinScheduler 的 lib/ 目录下,并删除旧版本驱动。
检查数据库连接配置编辑
conf/datasource.properties
(DolphinScheduler 2.x)或 conf/common.properties(DolphinScheduler 3.x),确保以下参数正确:
关键参数说明:
useSSL=false:禁用 SSL 连接(测试环境)
allowPublicKeyRetrieval=true:允许客户端获取公钥(MySQL 8.x 必需)
serverTimezone:指定时区,避免时间戳转换问题
验证网络连通性从 DolphinScheduler 服务器测试与 MySQL 服务器的网络连接:
检查 MySQL 认证插件若使用 MySQL 8.x,确认 root 用户的认证插件为 mysql_native_password:
临时禁用防火墙或安全组若存在防火墙,临时关闭以验证是否为网络限制导致:
注意:完成测试后务必重新启用防火墙,并配置允许访问的规则。
常见错误处理
错误: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 服务:
重新执行数据库初始化脚本:
预防措施
在安装前,确保 MySQL 版本与 DolphinScheduler 官方文档推荐版本兼容。
使用专用数据库用户(而非 root)进行应用访问,并限制其权限范围。
定期备份数据库,避免数据丢失。
生产环境建议启用 SSL 加密,并配置更严格的网络访问策略。
参考文档
原文链接:https://blog.csdn.net/timonium/article/details/147952568
评论