如何将JDBC驱动程序添加到Jenkins管道?

Mik*_*son 6 mysql groovy jdbc jenkins jenkins-pipeline

我想在管道脚本中创建一个数据库,供部署的应用程序使用.但首先我开始测试连接.我遇到了这个问题:

java.sql.SQLException: No suitable driver found for jdbc:mysql://mysql:3306/test_db
Run Code Online (Sandbox Code Playgroud)

我安装了数据库插件和MySQL数据库插件.

我如何获得JDBC驱动程序?

import groovy.sql.Sql
node{

    def sql = Sql.newInstance("jdbc:mysql://mysql:3306/test_db", "user","passwd", "com.mysql.jdbc.Driver")
    def rows = sql.execute "select count(*) from test_table;"
    echo rows.dump()
}
Run Code Online (Sandbox Code Playgroud)

albciff回答后更新:

我的版本:

Jenkins = 2.19.1

Database plugin = 1.5

Mysql database plugin = 1.1
Run Code Online (Sandbox Code Playgroud)

最新的测试脚本.

import groovy.sql.Sql

Class.forName("com.mysql.jdbc.Driver")
Run Code Online (Sandbox Code Playgroud)

哪个投掷:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
Run Code Online (Sandbox Code Playgroud)

alb*_*iff 3

MySQL 数据库插件文档中,您可以看到包含MySQLjdbc驱动程序:

请注意,MySQL JDBC 驱动程序遵循 GPLv2,但 FOSS 例外。该插件本身符合 FOSS 例外规定,但如果您要重新分发该插件,请务必检查许可条款。Drizzle(+MySQL) 数据库插件可作为此插件的替代品,并且该插件采用 BSD 许可证。

更具体地说,该插件的实际最新版本 (1.1) 包含连接器版本 5.1.38:

版本 1.1(2016 年 5 月 21 日)mysql-connector 版本 5.1.38

因此,为了让驱动程序可用,您可能必须强制注册驱动程序。

为此,请Class.forName("com.mysql.jdbc.Driver")在代码中实例化连接之前使用:

import groovy.sql.Sql
node{
    Class.forName("com.mysql.jdbc.Driver")
    def sql = Sql.newInstance("jdbc:mysql://mysql:3306/test_db", "user","passwd", "com.mysql.jdbc.Driver")
    def rows = sql.execute "select count(*) from test_table;"
    echo rows.dump()
}
Run Code Online (Sandbox Code Playgroud)

更新:

为了在Jenkins 管道groovy 脚本中使用JDBC连接器类,您需要将数据库插件更新到最新版本:

版本 1.5(2016 年 5 月 30 日)管道支持

  • 感谢您确认它包含 mysql-connector。测试了您的代码并得到: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver (2认同)