You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用amazon/aws-glue-libs容器连接RDS MySQL遇JDBC驱动缺失问题求助

解决AWS Glue本地Docker容器连接MySQL的JDBC驱动问题

先排查驱动是否存在

进入容器bash后,先查Glue的依赖目录里有没有MySQL驱动:

  • 执行 ls /opt/aws-glue-libs/jars/ | grep mysql,看有没有mysql-connector-java-*.jar这类文件。没有的话,就是本地容器缺驱动包。
  • 也可以顺带查下Spark默认驱动目录:ls /usr/lib/spark/jars/ | grep mysql,部分环境会把JDBC驱动放这儿。

手动补装驱动包

确认缺驱动的话,按下面步骤来:

  1. 下载对应版本的MySQL Connector/J驱动(注意和你RDS MySQL版本匹配,比如8.x版本对应com.mysql.cj.jdbc.Driver)。
  2. 把本地下载的jar包复制进容器:
    docker cp /本地文件路径/mysql-connector-java-8.0.30.jar <你的容器ID>:/opt/aws-glue-libs/jars/
    
  3. 要是不想本地下载,也可以进入容器后,直接获取对应版本的jar包放到/opt/aws-glue-libs/jars/目录下。
  4. 重启Glue会话或者重新跑你的PySpark代码,让驱动加载生效。

验证驱动类有效性

在容器里用Java命令验证驱动类能不能被找到:

cd /opt/aws-glue-libs/jars/
java -cp mysql-connector-java-8.0.30.jar com.mysql.cj.jdbc.Driver

没报错就说明驱动类没问题;要是还提示找不到,要么是驱动版本下错了,要么是类路径没指定对。

代码里的额外检查点

  • 确认代码里的driver参数是com.mysql.cj.jdbc.Driver(对应MySQL 8.x),要是用的是MySQL 5.x,得改成com.mysql.jdbc.Driver,别搞混版本。
  • 也可以在初始化Spark会话时手动指定驱动路径,比如在PySpark代码开头加:
    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder \
        .appName("MySQLConnection") \
        .config("spark.driver.extraClassPath", "/opt/aws-glue-libs/jars/mysql-connector-java-8.0.30.jar") \
        .config("spark.executor.extraClassPath", "/opt/aws-glue-libs/jars/mysql-connector-java-8.0.30.jar") \
        .getOrCreate()
    

内容的提问来源于stack exchange,提问作者writes_on

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:38:21