AWS Glue脚本连接MySQL失败,报错com.mysql.cj.jdbc.Driver
问题解决:AWS Glue连接MySQL报错找不到com.mysql.cj.jdbc.Driver
核心原因
你使用的mysql-connector-java-5.1.49.jar属于MySQL JDBC驱动的5.x版本,该版本的驱动类名是com.mysql.jdbc.Driver,但你代码中指定的com.mysql.cj.jdbc.Driver是8.x版本驱动专属的类名,版本不匹配导致驱动类找不到。
分步解决方案
1. 修正驱动类名
修改connection_mysql_options_source_session中的驱动类配置,替换为5.x版本对应的类名:
connection_mysql_options_source_session = { "url": url, "dbtable": table, "user": username, "password": password, "customJdbcDriverS3Path": "s3://xxxxx/jdbc-drivers/mysql-connector-java-5.1.49.jar", "customJdbcDriverClassName": "com.mysql.jdbc.Driver" # 改为5.x版本驱动类名 }
2. 移除冗余的Spark配置
代码中spark.conf.set("jars", "...")这一行可以删除,因为你已经在Glue作业详情中引用了Jar包,Glue有独立的类加载机制,该配置可能引发冲突。
3. 验证Jar包权限与路径
- 确认作业详情中引用的Jar路径和代码中
customJdbcDriverS3Path完全一致 - 确保Glue作业执行角色拥有该S3路径的读权限
额外说明
Crawler能成功连接是因为它会自动适配驱动版本,或使用了Glue内置的MySQL驱动;而Notebook和自定义脚本需要明确指定匹配的驱动类名,因此出现了连接结果的差异。
内容的提问来源于stack exchange,提问作者pm1359
相关产品推荐
相关产品推荐

