How to add a JDBC driver to a Jenkins pipeline?(如何将 JDBC 驱动程序添加到 Jenkins 管道?)
问题描述
我想在管道脚本中创建一个数据库,供部署的应用程序使用.但首先我开始测试连接.我遇到了这个问题:
I want to create a database within a pipeline script to be used by the deployed app. But first I started testing the connection. I got this problem:
java.sql.SQLException: No suitable driver found for jdbc:mysql://mysql:3306/test_db
我已经安装了数据库插件和 MySQL 数据库插件.
I have the database plugin and the MySQL database plugin installed.
如何获取 JDBC 驱动程序?
How do I get the JDBC driver?
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()
}
在 albciff 回答后更新:
我的版本:
Jenkins = 2.19.1
Database plugin = 1.5
Mysql database plugin = 1.1
最新的测试脚本.
import groovy.sql.Sql
Class.forName("com.mysql.jdbc.Driver")
抛出:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
推荐答案
来自 MySQL 数据库插件 文档您可以看到 MySQL 的 jdbc 驱动程序包括在内:
From the MySQL DataBase Plugin documentation you can see that jdbc drivers for MySQL are included:
请注意,MySQL JDBC 驱动程序在 GPLv2 下,但有 FOSS 例外.这插件本身符合 FOSS 例外的条件,但如果您是重新分发此插件,请检查许可条款.Drizzle(+MySQL) 数据库插件可作为替代插件,那个是在 BSD 许可下的.
Note that MySQL JDBC driver is under GPLv2 with FOSS exception. This plugin by itself qualifies under the FOSS exception, but if you are redistributing this plugin, please do check the license terms. Drizzle(+MySQL) Database Plugin is available as an alternative to this plugin, and that one is under the BSD license.
更具体地说,此插件的实际最新版本 (1.1) 包含连接器版本 5.1.38:
More concretely the actual last version (1.1) for this plugin contains connector version 5.1.38:
1.1 版(2016 年 5 月 21 日)mysql-connector 5.1.38 版
Version 1.1 (May 21, 2016) mysql-connector version 5.1.38
因此,可能为了使驱动程序可用,您必须强制注册驱动程序.
So probably in order to have the driver available you have to force the driver to be registered.
在你的代码中实例化连接之前使用Class.forName("com.mysql.jdbc.Driver")
:
To do so use Class.forName("com.mysql.jdbc.Driver")
before instantiate the connection in your code:
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()
}
更新:
为了在 Jenkins 管道 groovy 脚本中使用 JDBC 连接器类,您需要更新 DataBase 插件 到最新版本:
In order to has the JDBC connector classes available in the Jenkins pipeline groovy scripts you need to update the DataBase plugin to last currently version:
1.5 版(2016 年 5 月 30 日)管道支持
Version 1.5 (May 30, 2016) Pipeline Support
这篇关于如何将 JDBC 驱动程序添加到 Jenkins 管道?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将 JDBC 驱动程序添加到 Jenkins 管道?
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- SQL 临时表问题 2022-01-01
- 更改自动增量起始编号? 2021-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01