升级AWS Aurora MySQL后Pentaho PDI 9.3无法连接求助
检查cron环境的Java版本与环境变量:Pentaho PDI依赖Java运行环境,但cron执行时的默认环境变量(如
JAVA_HOME、PATH)往往和手动登录shell时不一致。可以在cron任务脚本开头显式指定Java路径:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH也可以先输出cron的环境变量到日志,对比手动登录的环境差异:
* * * * * env > /tmp/cron_env.log重点核对
JAVA_HOME、PATH、CLASSPATH这几个关键变量。确认PDI执行的工作目录与驱动路径:cron默认的工作目录是用户家目录,若手动运行PDI时的工作目录不同(比如
/opt/pentaho/data-integration),会导致驱动jar包路径无法被正确识别。可以在cron任务里先切换到PDI根目录再执行任务:* * * * * cd /opt/pentaho/data-integration && ./kitchen.sh -file=/path/to/your/job.kjb同时检查PDI的
lib目录下是否确实存在对应的mysql驱动jar,避免因文件权限问题导致cron进程无法读取(比如驱动jar的所有者是root,但cron用普通用户执行)。测试实例到Aurora的网络连通性:即使PHPStorm能连接,cron所在的AWS实例可能因Aurora升级后的配置变化(如端点更新、安全组规则调整)出现网络不通。在实例上直接测试端口连通性:
nc -zv your-aurora-cluster-endpoint 3306若不通,检查实例的出站安全组规则是否允许访问Aurora的3306端口,以及Aurora的入站规则是否包含该实例的IP或安全组。
开启PDI的JDBC详细日志:默认日志仅提示连接失败,无法定位具体原因。修改PDI根目录下的
log4j2.xml,将com.mysql.cj和org.apache.commons.dbcp的日志级别设为DEBUG,这样能看到连接过程中的具体报错(比如SSL握手失败、认证错误等)。补充JDBC连接参数:除了
useSSL=false和allowPublicKeyRetrieval=true,可以添加时区和字符集参数,匹配Aurora升级后的默认配置:jdbc:mysql://your-aurora-endpoint:3306/db_name?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8mb4
内容的提问来源于stack exchange,提问作者Ignacio Riberi

