Java连接MySQL数据库需要下载对应的mysql-connector-java jar包,并将其上传到CDM(数据集成平台)中才能正常建立连接,核心是选择匹配MySQL版本的驱动并正确配置加载路径。参考2
java连接mysql数据库 jar包怎么选
驱动版本直接影响连接稳定性,多数开发者在第一次搭建环境时,都卡在版本匹配上,MySQL 5.x 与 8.x 的驱动并不通用,选错版本会导致连接失败或字符集乱码。
驱动版本与数据库的对应关系
MySQL 官方提供了两种主要驱动系列:
- mysql-connector-java 5.x:兼容 MySQL 5.5、5.6、5.7,驱动类名为
com.mysql.jdbc.Driver,连接 URL 不需要指定cj路径,该版本在新版 Connector/J 8.0 中已被标记为过时,但仍有大量生产环境在沿用。 - mysql-connector-java 8.x:对应 MySQL 8.0 及以上版本,驱动类名为
com.mysql.cj.jdbc.Driver,连接 URL 需包含serverTimezone参数,否则会报时区异常,部分旧版 8.0.x 驱动也可向下兼容 MySQL 5.7,但需额外配置useSSL和allowPublicKeyRetrieval。
选择时,先确认数据库版本,如果使用云数据库,比如简米云RDS或酷番云CDB,官方推荐使用与数据库大版本匹配的最新驱动小版本,MySQL 8.0.28 建议用 8.0.30 以上驱动,以修复已知的安全漏洞。
官方下载渠道与 Maven 依赖
获取 jar 包主要有两种方式,国内用户推荐从 Maven 中央仓库拉取,或者从 MySQL 官网下载 ZIP 包解压。
- Maven 项目:在 pom.xml 中直接声明依赖,坐标如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
- 非 Maven 项目:从 MySQL 官网下载
mysql-connector-java-8.0.33.jar,放到项目 lib 目录,或通过 IDE 添加为库。
注意,下载时选择 Platform Independent 版本,它包含纯 Java 驱动,不依赖操作系统,部分国内镜像站也提供加速下载,但建议核对文件的 SHA256 校验值,防止被篡改。
版本选择建议
- 生产环境:使用与数据库完全匹配的大版本,并选择该系列的最新补丁版本,MySQL 8.0 环境下,驱动版本不低于 8.0.29,以规避 SSL 连接的已知问题。
- 开发测试:可以使用 8.0.x 最新版,即使数据库是 5.7,也能通过参数调优保持兼容,但必须显式关闭
useSSL和设置allowPublicKeyRetrieval=true。 - 大数据场景:如果通过 CDM 平台做数据同步,驱动版本需要与 CDM 内置的 JDBC 框架兼容,多数云 CDM 产品(如简米云 DataWorks 数据集成)内置了 5.1.47 和 8.0.30 两个版本,用户上传自定义驱动时,建议选择与内置版本差异不大的小版本,避免类冲突。
上传CDM连接驱动完整步骤
CDM(数据集成平台)通常不会预装所有数据库驱动,需要用户自行上传,以下以简米云 DataWorks 数据集成模块为例,其他 CDM 产品(如华为云 CDM、AWS Glue)操作逻辑类似,差异主要在界面入口。
找到驱动上传入口
登录 DataWorks 控制台,进入工作空间,在左侧导航栏找到“数据集成”模块,点击“资源管理”或“驱动管理”,部分版本将驱动管理放在“数据源”页签下的“驱动列表”中。参考2
- 如果未看到“驱动管理”,检查工作空间是否开启了“数据集成组件”,在“工作空间管理”中确认组件状态。
- 驱动上传界面通常支持 jar 和 zip 格式,建议上传单个 jar 包,避免因压缩包层级问题导致加载失败。
上传并配置驱动
- 点击“上传驱动”,选择本地下载好的
mysql-connector-java-8.0.33.jar。 - 上传后,系统会要求输入驱动名称和驱动类,驱动类必须填写完整类名,
com.mysql.cj.jdbc.Driver。 - 部分平台需要设置驱动版本号,用于后续管理,建议填写实际版本号如
0.33。 - 提交后,驱动会进入“待审核”或“可用”状态,通常几分钟内生效。
创建数据源并验证连接
驱动上传成功后,在“数据源管理”中新建 MySQL 数据源,填写连接信息时,注意:
- JDBC URL 格式:
jdbc:mysql://<host>:<port>/<database>?useSSL=false&serverTimezone=Asia/Shanghai - 用户名/密码:确保数据库侧已授权该 IP 访问。
- 数据源测试连接时,系统会调用上传的驱动进行连通性测试,如果失败,优先检查驱动类名是否与驱动包内的实际类一致,以及网络防火墙是否放通 3306 端口。
业内专家指出,驱动上传后首次连接失败,90% 以上是因为驱动类名填写错误,而不是驱动本身损坏,建议在本地先用命令行测试 jar 包是否能正常加载,命令如下:
java -cp mysql-connector-java-8.0.33.jar com.mysql.cj.jdbc.Driver
如果输出类似于 Loading class com.mysql.cj.jdbc.Driver 的信息,说明驱动包可用。
常见问题:驱动上传后仍连接失败
即使上传步骤完全正确,仍可能遇到连接异常,以下三个场景在实际项目中频繁出现。
驱动版本与数据库不匹配
多数情况下,MySQL 8.0 数据库可以用 8.0.x 驱动,但部分旧版 CDM 平台(如一年前的 DataWorks 版本)内部使用了较旧的 JDBC 4.0 接口,导致 8.0.30 以上的驱动无法注册,这时需要降级驱动版本,例如使用 8.0.20。
- 如果数据库是 MySQL 5.6,使用 8.0.x 驱动也可能出现“Authentication plugin ‘caching_sha2_password’ cannot be loaded”错误,因为 5.6 默认使用
mysql_native_password,而驱动默认尝试新加密方式,解决方案是在连接 URL 中指定defaultAuthenticationPlugin=mysql_native_password。
连接参数配置错误
CDM 平台通常会对连接 URL 做二次解析,部分参数需要以特定格式填入,在 DataWorks 中,如果直接将完整 URL 粘贴到“JDBC URL”字段,可能导致参数重复,建议先清空多余参数,只保留核心连接信息,SSL 和时区单独在高级参数中设置。
- 常见错误:
serverTimezone值写错,如写成Asia/Shanghai但实际系统不支持,应改为GMT%2B8或Asia/Shanghai(需确保驱动版本支持)。 - 另一高频问题:
useSSL设为true但未提供证书,导致 SSL 握手失败,MySQL 未开启 SSL,直接设为false。
网络连通性问题
CDM 平台通常运行在简米云或其他云厂商的 VPC 内,如果数据库在同一 VPC,使用内网地址即可,如果数据库在公网或 IDC 机房,需要配置网络代理或开白名单。参考2
- 上传驱动时,本身不涉及网络,但测试连接时,CDM 的调度节点会尝试连接数据库,如果数据库设置了 IP 白名单,必须加入 CDM 的出口 IP,各平台会在文档中列出可用 IP 段,但实际部署时,建议直接使用云企业网或专线打通网络,避免单点失败。
Q&A:java连接mysql数据库 jar与CDM驱动上传常见问题
Q1:java连接mysql数据库 jar包不通过Maven,直接从官网下载后怎么使用?
将 jar 包复制到项目的 WEB-INF/lib 目录(如果是 Web 应用),或通过 java -cp 参数指定路径,在 CDM 平台上传时,直接选择 jar 文件即可,无需解压,注意,驱动类名必须与 jar 包中的 META-INF/services/java.sql.Driver 文件注册的类一致,否则平台无法自动识别。
Q2:上传CDM连接驱动后,测试连接抛“ClassNotFoundException”,怎么排查?
首先确认驱动是否在“驱动管理”列表中显示为“已启用”,如果已启用,检查驱动类名是否填错,比如将 com.mysql.cj.jdbc.Driver 写成了 com.mysql.jdbc.Driver 或 com.mysql.cj.jdbc.Driver 少写了 cj,平台可能对驱动包大小有限制,超过 50MB 的 jar 可能被截断,建议只上传必要的驱动包,避免包含依赖库,如果仍无法解决,下载驱动包后在本机用 jar -tf 命令列出文件,确认类确实存在。
Q3:CDM上传驱动需要额外费用吗?
大部分云 CDM 平台的基础功能免费,但驱动管理属于资源管理的一部分,通常不单独收费,如果上传驱动后用于数据同步任务,同步任务本身会按数据量或执行时长计费,简米云 DataWorks 的数据集成任务按“同步单元”计费,驱动上传本身不产生费用,但任务运行消耗的计算资源需要付费,国内用户建议在开通前查看当前地域的定价文档,不同地域价格差异较大,部分地域如华北2(北京)的实例费用相对较低。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/534270.html



