Rundeck配置本地MySQL后无法启动,连接池初始化失败求助
Rundeck配置MySQL后无法启动问题排查
问题描述
Rundeck默认配置可正常运行,但配置MySQL(版本8.0.34-0ubuntu0.22.04.1)作为后端数据库后无法启动,日志提示无法连接MySQL服务器。已尝试重装数据库、修改认证设置、安装MySQL JDBC驱动,但问题依旧。
关键错误日志
[2023-10-04T09:55:12,015] ERROR pool.ConnectionPool [main] - Unable to create initial connections of pool. java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=myserver)(port=3306)(type=master) : Socket fail to connect to host:myserver, port:3306. myserver
排查与修复步骤
核心问题是Rundeck无法建立到MySQL服务器的网络连接,按以下步骤逐一验证:
1. 验证主机名解析
确保myserver能被Rundeck服务器正确解析:
ping myserver nslookup myserver
若解析失败,直接替换为MySQL服务器的IP地址,修改/etc/rundeck/rundeck-config.properties中的连接URL:
dataSource.url = jdbc:mysql://192.168.x.x/rundeck?autoReconnect=true&useSSL=false
2. 检查MySQL服务状态与端口监听
确认MySQL服务运行正常且监听3306端口:
# 检查服务状态 systemctl status mysql # 检查端口监听 netstat -tulpn | grep 3306
若MySQL未监听3306,修改/etc/mysql/mysql.conf.d/mysqld.cnf中的bind-address为0.0.0.0(允许所有IP访问)或Rundeck服务器的IP,然后重启服务:
systemctl restart mysql
3. 检查防火墙/安全组规则
验证Rundeck服务器能访问MySQL的3306端口:
# 测试端口连通性 telnet myserver 3306 # 或使用nc工具 nc -zv myserver 3306
若不通,开放防火墙端口:
# Ubuntu/Debian系统 ufw allow 3306/tcp # CentOS/RHEL系统 firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload
4. 验证MySQL用户权限
确保rundeckuser拥有从Rundeck服务器IP访问的权限:
# 登录MySQL控制台 mysql -u root -p # 授予权限(替换为Rundeck服务器实际IP) GRANT ALL PRIVILEGES ON rundeck.* TO 'rundeckuser'@'rundeck-server-ip' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
若为本地MySQL,可使用'rundeckuser'@'localhost'(仅允许本地访问)。
5. 调整JDBC驱动与URL参数
当前使用MariaDB驱动虽兼容MySQL,但建议切换为官方MySQL JDBC驱动:
- 下载MySQL JDBC驱动(mysql-connector-java-8.0.x.jar)放入
/var/lib/rundeck/lib目录 - 修改
rundeck-config.properties中的驱动类:
dataSource.driverClassName = com.mysql.cj.jdbc.Driver
同时,MySQL 8.0需指定时区参数,更新连接URL:
dataSource.url = jdbc:mysql://myserver/rundeck?autoReconnect=true&useSSL=false&serverTimezone=UTC
6. 确认数据库已创建
确保rundeck数据库存在:
CREATE DATABASE rundeck CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
完成以上步骤后,重启Rundeck服务:
systemctl restart rundeckd
内容的提问来源于stack exchange,提问作者Noah
相关产品推荐
相关产品推荐

