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

解决SUSE 15 Jenkins(Java 11)中MySQL Connector Jar类路径缺失问题

解决Jenkins Groovy脚本连接MySQL的ClassNotFoundException问题

在SUSE 15上的Jenkins 2.361.4(Java 11)环境里,zypper install mysql-connector-java安装的驱动不会自动加入Jenkins的类路径,所以Groovy脚本找不到驱动类。下面是几种靠谱的解决方法:

方法一:把驱动Jar放到Jenkins的lib目录(永久生效)

  1. 先确认Jenkins的主目录:要么看系统管理→系统信息里的JENKINS_HOME,SUSE默认一般是/var/lib/jenkins。
  2. 找到zypper安装的MySQL驱动Jar位置,通常在/usr/share/java/下,文件名可能是mysql-connector-java.jar或者带版本号的mysql-connector-java-8.x.x.jar。
  3. 复制驱动到Jenkins的lib目录:
    sudo cp /usr/share/java/mysql-connector-java.jar /var/lib/jenkins/lib/
    
  4. 重启Jenkins服务:
    sudo systemctl restart jenkins
    

方法二:在Groovy脚本里手动加载驱动(无需重启,临时/脚本内生效)

如果不想重启Jenkins,直接在脚本里指定驱动路径加载就行,还能兼容MySQL 8.0+的新驱动类:

// 替换成你的驱动Jar实际路径
def driverJarPath = "/usr/share/java/mysql-connector-java.jar"
def dbUrl = "jdbc:mysql://你的数据库地址:3306/数据库名?useSSL=false&serverTimezone=UTC"
def dbUser = "数据库账号"
def dbPwd = "数据库密码"

// 加载驱动类
def classLoader = new URLClassLoader([new File(driverJarPath).toURI().toURL()])
Class.forName("com.mysql.cj.jdbc.Driver", true, classLoader)

// 建立连接
def conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd)
// 这里写你的数据库操作逻辑...
conn.close()

划重点:MySQL 8.0之后官方已经废弃了com.mysql.jdbc.Driver,改用com.mysql.cj.jdbc.Driver,别再用旧类名了,避免后续兼容问题。

方法三:通过Jenkins插件辅助管理(可选)

安装Jenkins的"JDBC Plugin"插件,之后可以在全局配置里统一管理JDBC驱动,但这种方式不如直接放lib目录直观,适合多驱动管理的场景。

验证驱动是否加载成功

重启Jenkins后,进系统管理→脚本控制台,跑下面的代码测试:

try {
    Class.forName("com.mysql.cj.jdbc.Driver")
    println("MySQL驱动加载成功")
} catch (ClassNotFoundException e) {
    println("驱动加载失败: " + e.getMessage())
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:50:40