为什么Jenkins管道抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver?
Jenkins管道引发的异常为什么Jenkins管道抛出java.lang.ClassNotFoundException:com.mysql.jdbc.Driver?,java,mysql,jenkins,jdbc,Java,Mysql,Jenkins,Jdbc,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.3
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版之所以这样
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
,是因为缺少mysql连接器/J jar
注意:如果您使用的是更高版本的MySQL连接器/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:@juggao更改后仍然显示以前的错误。B Show java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver.In pipeline,我不知道把jar放在哪里。@juggao抱歉,我不是DevOps人。我只能在java相关的方面提供帮助。研究JAR的放置位置和加载方式jenkins pipeline。第二个原因是不正确的,MySQL Connector/J 8.0.x仍然包含
com.MySQL.jdbc.Driver
类;加载时它只会打印一条警告,但仍会加载com.mysql.cj.jdbc.Driver
。也就是说,建议切换到新的类名。MySQL连接器/J JAR文件不在类路径上,但自2007年以来就不再需要Class.forName()
行。