提问者:小点点

为什么Jenkins管道抛出java.lang.ClassNotFoundException:com.mysql.jdbc.driver?


Jenkins管道引发的异常。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我已经安装了数据库插件和MySQL数据库插件。

但我还是得到了这个例外。

管道代码:

import groovy.sql.Sql

node('master'){
    Class.forName("com.mysql.jdbc.Driver")
    def sql = Sql.newInstance("jdbc:mysql://10.10.115.38:3306/test", "root","123456", "com.mysql.jdbc.Driver")
    def rows = sql.execute "select count(*) from test;"
    echo rows.dump()
}

异常消息:

 Running on Jenkins in /var/jenkins_home/workspace/test-jdbc
 [Pipeline] {
 [Pipeline] }
 [Pipeline] // node
 [Pipeline] End of Pipeline
 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)

我用的是Jenkins版本2.222.1


共1个答案

匿名用户

出现此java.lang.ClassNotFoundException:com.MySQL.jdbc.driver的原因是缺少MySQL连接器/J jar。

注意:如果您使用的是更高版本的MySQL Connector/J,那么建议使用com.MySQL.cj.jdbc.driver而不是com.MySQL.jdbc.driver

我更新了你的剧本。

import groovy.sql.Sql

node('master'){
    Class.forName("com.mysql.cj.jdbc.Driver")
    def sql = Sql.newInstance("jdbc:mysql://10.10.115.38:3306/test", "root","123456", "com.mysql.cj.jdbc.Driver")
    def rows = sql.execute "select count(*) from test;"
    echo rows.dump()
}

从这里下载jar:https://mvnrepository.com/artifact/mysql/mysql-connector-

相关问题