Rundeck连接MySQL 8报RSA公钥错误,已禁用SSL仍无法启动求助
解决Rundeck连接MySQL 8启动报错的问题
问题根源
MySQL 8默认采用caching_sha2_password认证机制,即便你已经禁用了SSL连接,JDBC驱动在连接使用该认证的用户时,仍会尝试获取RSA公钥,从而触发你遇到的报错。
解决方法
方法1:调整Rundeck数据库连接URL参数
- 找到Rundeck的核心配置文件
rundeck-config.properties(通常位于/etc/rundeck/或Rundeck安装目录的conf文件夹下) - 更新
dataSource.url配置项,在现有参数基础上添加allowPublicKeyRetrieval=true和时区参数(避免额外时区报错),示例如下:
dataSource.url=jdbc:mysql://localhost:3306/rundeck?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
- 保存配置后,重启Rundeck服务
方法2:修改Rundeck数据库用户的认证方式
如果不想调整URL参数,可以将Rundeck使用的数据库用户改为兼容旧驱动的mysql_native_password认证:
- 登录MySQL控制台:
mysql -u root -p
- 切换到Rundeck对应的数据库:
USE rundeck;
- 修改目标用户的认证方式(替换
rundeckuser和your_password为实际的用户名和密码):
ALTER USER 'rundeckuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
- 刷新MySQL权限:
FLUSH PRIVILEGES;
- 依次重启MySQL和Rundeck服务
额外检查
- 确认Rundeck使用的MySQL JDBC驱动版本为8.0及以上,低版本驱动对
caching_sha2_password的支持不完善(大部分新版本Rundeck已自带适配的驱动)
内容的提问来源于stack exchange,提问作者Majora's Mask
相关产品推荐
相关产品推荐

