Spring Cloud Data Flow MySQL 8.0の使用

1947 ワード

MySQL 8.0とともにSrping Cloud Data Flow Serverを使用したときに発生したエラーをテストします.
https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/
公式サイトから見ます.
MariaDBドライバとともに使用されるMySQLバージョンは最大5.7です.バージョン8.0からはMySQL独自のドライバを使用する必要があります.
java -jar spring-cloud-dataflow-server/target/spring-cloud-dataflow-server-2.9.2.jar \
    --spring.datasource.url=jdbc:mysql://localhost:3306/mydb \
    --spring.datasource.username= \
    --spring.datasource.password= \
    --spring.datasource.driver-class-name=com.mysql.jdbc.Driver
ライセンス制限のため、MySQLドライバをバンドルできません.サーバに直接追加するクラスパスが必要です.
MySQL 8.0からはMySQL独自のドライバを使用しなければならず、ライセンス制限のため提供をバンドルできないため、サーバのクラスパスに直接追加しなければならないという.
Javaを実行するときにclasspathと指定すればいいと思いますが、何度試しても
java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver
このようなエラーが発生しました.
解決策
jarファイルを開き、追加しました.
解凍
JArファイルはすぐに解放されます.個別のディレクトリを作成した後に続行したほうがいいです.
jar xvf spring-cloud-dataflow-server-2.9.1.jar
BOOT-INF/libでmysql-connector-java-8.0.28を使用します.jarファイルを入れて、
念のためclasspathidxファイルも開いて修正しました.
あっしゅく
jar -cvf0m spring-cloud-dataflow-server-2.9.1.jar ./META-INF/MANIFEST.MF .
0:圧縮率0
m:MANIFESTファイルの指定
これで再圧縮して実行し、成功しました.
参考までにMySQL 8.0は公式サイトのcomとは違います.mysql.cj.jdbc.Driverを使用する必要があります.(MySQLバージョン以降は変更されています)
java -jar spring-cloud-dataflow-server/target/spring-cloud-dataflow-server-2.9.1.jar \
    --spring.datasource.url=jdbc:mysql://localhost:3306/mydb \
    --spring.datasource.username= \
    --spring.datasource.password= \
    --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
※Skipperサーバでも同様の作業を行う