ETLツール-Kettle接続MySQLエラーおよびソリューション
1.駆動の問題
kettleでmysql接続を新規作成する場合、一般的にNative(JDBC)メソッドを選択します.この場合、MySQLバージョンに対応するconnector接続jarパッケージをダウンロードし、kettleインストールディレクトリのdata-integrationlibの下に置く必要があります.低バージョンのMySQLデータベースはこの方法で一般的には問題ありませんが、mysql 8.0以上のconnectorはこのパッケージ名をサポートしていないため、mysql-connector-java-8.0がすでに表示されます.xx.JArパッケージはlibディレクトリにコピーされましたが、ドライバが見つからないとエラーが発生しました.エラーは次のとおりです.
エラー接続データベース[tcc]:org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the database Driver class ‘org.gjt.mm.mysql.Driver’ could not be found, make sure the ‘MySQL’ driver (jar file) is installed.
この方法では駆動タイプを指定できませんが、kettleでデフォルトで使用する駆動タイプはorgです.gjt.mm.mysql.Driver;
解決策
このときJNDI方式でkettle使用comを設定ことができる.mysql.cj.jdbc.DriverはMySQLに接続するドライバとして機能します.具体的にはmysql-connector-java-8.0を設定.xx.jarパッケージをlibディレクトリにコピーし、data-integrationsimple-jndiディレクトリのjdbc.propertiesファイルの新しいJNDI構成:
注意:コードの中国語部分は、接続するMySQLデータベースに関する構成に変更されました.
テキストリンク:https://blog.csdn.net/zougen/article/details/84975410
2.タイムゾーン競合の問題
上記の方法で設定すると、通常は正常に接続できますが、次のエラーが表示される場合もあります.
java.sql.SQLException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
解決策
MySQL接続アドレスの設定:&serverTimezone=UTCか、上記data-integrationsimple-jndiディレクトリのjdbcか.propertiesファイル内:–元の設定
–変更後の設定
kettleでmysql接続を新規作成する場合、一般的にNative(JDBC)メソッドを選択します.この場合、MySQLバージョンに対応するconnector接続jarパッケージをダウンロードし、kettleインストールディレクトリのdata-integrationlibの下に置く必要があります.低バージョンのMySQLデータベースはこの方法で一般的には問題ありませんが、mysql 8.0以上のconnectorはこのパッケージ名をサポートしていないため、mysql-connector-java-8.0がすでに表示されます.xx.JArパッケージはlibディレクトリにコピーされましたが、ドライバが見つからないとエラーが発生しました.エラーは次のとおりです.
エラー接続データベース[tcc]:org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the database Driver class ‘org.gjt.mm.mysql.Driver’ could not be found, make sure the ‘MySQL’ driver (jar file) is installed.
この方法では駆動タイプを指定できませんが、kettleでデフォルトで使用する駆動タイプはorgです.gjt.mm.mysql.Driver;
解決策
このときJNDI方式でkettle使用comを設定ことができる.mysql.cj.jdbc.DriverはMySQLに接続するドライバとして機能します.具体的にはmysql-connector-java-8.0を設定.xx.jarパッケージをlibディレクトリにコピーし、data-integrationsimple-jndiディレクトリのjdbc.propertiesファイルの新しいJNDI構成:
注意:コードの中国語部分は、接続するMySQLデータベースに関する構成に変更されました.
mysql_test/type=javax.sql.DataSource
mysql_test/driver=com.mysql.cj.jdbc.Driver
mysql_test/url=jdbc:mysql:// :3306/ ?useUnicode=true&characterEncoding=utf-8&disableMariaDbDriver
mysql_test/user= MySQL
mysql_test/password= MySQL
テキストリンク:https://blog.csdn.net/zougen/article/details/84975410
2.タイムゾーン競合の問題
上記の方法で設定すると、通常は正常に接続できますが、次のエラーが表示される場合もあります.
java.sql.SQLException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
解決策
MySQL接続アドレスの設定:&serverTimezone=UTCか、上記data-integrationsimple-jndiディレクトリのjdbcか.propertiesファイル内:–元の設定
--
mysql_test/url=jdbc:mysql:// :3306/ ?useUnicode=true&characterEncoding=utf-8&disableMariaDbDriver
–変更後の設定
--
mysql_test/url=jdbc:mysql:// :3306/ ?useUnicode=true&characterEncoding=utf-8&disableMariaDbDriver&serverTimezone=UTC