デプロイされたアプリで使用するパイプラインスクリプト内にデータベースを作成したいと思います。しかし、最初に接続のテストを開始しました。私はこの問題を抱えています:
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
MySQL DataBase Plugin ドキュメントから、MySQLのjdbcドライバーが含まれていることがわかります。
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日)パイプラインサポート