web-dev-qa-db-ja.com

JDBCドライバーをJenkinsパイプラインに追加するにはどうすればよいですか?

デプロイされたアプリで使用するパイプラインスクリプト内にデータベースを作成したいと思います。しかし、最初に接続のテストを開始しました。私はこの問題を抱えています:

Java.sql.SQLException: No suitable driver found for jdbc:mysql://mysql:3306/test_db

データベースプラグインと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()
}

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 
8
Mikael Svensson

MySQL DataBase Plugin ドキュメントから、MySQLjdbcドライバーが含まれていることがわかります。

MySQL JDBCドライバーは、FOSS例外を除いてGPLv2の下にあることに注意してください。このプラグイン自体は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()
}

更新:

[〜#〜] jdbc [〜#〜]コネクタクラスをJenkinsパイプラインgroovyスクリプトで使用できるようにするために データベースプラグイン を現在の最後のバージョンに更新する必要があります:

バージョン1.5(2016年5月30日)パイプラインサポート

2
albciff